版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 超市進銷存管理系統(tǒng)</b></p><p><b> 摘 要</b></p><p> 超市進銷存管理系統(tǒng)是目前應用于公司或是企業(yè)進銷存管理系統(tǒng)中的典型代表,涉及到了商品或貨物管理中主要的6個方面,即進貨、銷售、錢流、庫存、統(tǒng)計及查賬。通過一個典型超市進銷存管理系統(tǒng)的例子,介紹了現(xiàn)代企業(yè)進銷存管理信息化的一般解決
2、方案,其重要性不言而喻。但是,目前超市在具體的業(yè)務流程處理過程中仍然使用手工操作的方式來實施,不僅費時、費力、效率低下,而且無法達到理想的效果。</p><p> 本系統(tǒng)是根據(jù)企業(yè)的特點,集進、銷、存于一體,為企業(yè)量身定做的進銷存管理軟件。在設計過程中最大限度滿足用戶的要求,因此,該系統(tǒng)具有較強的實用性和針對性。本系統(tǒng)界面友好,操作簡單,可維護性強,功能完備。本論文介紹了進銷存管理信息系統(tǒng)開發(fā)的全過程,詳細介紹
3、了系統(tǒng)的分析、系統(tǒng)的開發(fā)與設計說明等內(nèi)容,最后給出了系統(tǒng)的使用說明和系統(tǒng)設計的心得體會。</p><p> 關鍵詞:超市進銷存管理,數(shù)據(jù)庫,統(tǒng)計</p><p> PURCHASE, SALES AND INVENTORY MANAGEMENT</p><p> SYSTEM SUPERMARKET</p><p><b>
4、 Abstract </b></p><p> Purchase, Sales and Inventory Management System supermarket is used in companies or enterprises in the Purchase, Sales and Inventory Management System for a typical representat
5、ive of, relating to the goods or goods of the management of six major areas, namely, purchase, sale, money flow, inventories, statistics and auditing . Supermarkets, through a typical example of Invoicing Management Syst
6、em, introduced the modern enterprise management information Invoicing solution of the general, the impor</p><p> KEY WORDS: The supermarket enters sells saves the management ,database ,statistics</p>
7、<p><b> 目錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p><b> 第一章 引言1</b></p><p> 1.1問題的提出1</p><p>
8、 1. 2課題的研究目的2</p><p> 1. 3課題的研究意義2</p><p> 第二章 系統(tǒng)分析3</p><p> 2.1 需求分析3</p><p> 2.2 可行性分析3</p><p> 第三章 總體設計5</p><p> 3.1 項目規(guī)
9、劃5</p><p> 3. 2 數(shù)據(jù)庫設計6</p><p> 第四章 系統(tǒng)設計9</p><p> 4.1 設計目標9</p><p> 4.2 開發(fā)及運行環(huán)境9</p><p> 4.3 邏輯結構設計9</p><p> 第五章 主要功能模塊設計17&
10、lt;/p><p> 5.1 主窗體設計17</p><p> 5.2 基礎窗體創(chuàng)建21</p><p> 5.3 數(shù)據(jù)模塊設計22</p><p> 5.4 庫存商品模塊設計24</p><p> 5.5 商品基本信息模塊設計27</p><p> 5.6 進貨單
11、錄入模塊設計29</p><p><b> 總結33</b></p><p><b> 參考文獻34</b></p><p><b> 致謝36</b></p><p><b> 第一章 引言</b></p><p&g
12、t; 超市進銷存管理系統(tǒng)是超市商品銷售及貨物管理的主要控制部分,直接影響銷售的方便性及管理的規(guī)范性。隨著信息時代的發(fā)展,對效率的要求日益提高,企業(yè)經(jīng)營涉及進、銷、存多個環(huán)節(jié),涉及商品種類繁多,業(yè)務量大,庫存管理復雜,使用手工管理已無法勝任,因而軟件控制銷售和管理已經(jīng)取代了傳統(tǒng)全手工方式。如何采用先進的計算機系統(tǒng)管理進貨、庫存、銷售等諸多環(huán)節(jié)也已成為趨勢及必然。超市具有自身的特點:商品要求一般齊全,進出貨關系較為簡單,員工人數(shù)種類不多;
13、在軟件角度看,數(shù)據(jù)較少,對存儲和速度要求不高。但正由于員工較少,使用軟件控制成為必須。</p><p><b> 問題的提出</b></p><p> 目前,大量的中小超市企業(yè)中,存在這樣的現(xiàn)象:分散的、不連貫的進銷存信息使超市管理者或相關管理人員無法看到進銷存的全部資料及相關報表,信息的分散使得產(chǎn)生的結果也無法保持一致和完整性,造成中小超市在進銷存管理上存在如下
14、問題:</p><p><b> 無法統(tǒng)計銷售信息?</b></p><p> 無法準確全面掌握各業(yè)務進展狀態(tài)?</p><p> 對銷售人員工作過程掌握不夠?</p><p> 業(yè)務人員對產(chǎn)品沒有一定認識?</p><p> 銷售及市場流程不清晰,流程變動較大?</p>
15、<p> 對市場信息、競爭的資訊掌握程度較不完善?</p><p> 無結構統(tǒng)一銷售及市場情況報表?基本銷售及市場費用統(tǒng)計較不完備?</p><p> 銷售人員辭職時失單現(xiàn)象嚴重?等等。</p><p> 加之,現(xiàn)在顧客的期望值越來越高,顧客需要更好的服務(產(chǎn)品及個性化服務)。企業(yè)的競爭已逐漸從產(chǎn)品的競爭轉變?yōu)榉盏母偁帲虼酥行∑髽I(yè)要發(fā)展就必須需
16、要進一步優(yōu)化業(yè)務流程以提高企業(yè)競爭能力。因此,加強超市進銷存管理是企業(yè)發(fā)展的必然,通過計算機來大量完成本來由工作人員手工完成的工作,真正達到合理和充分利用現(xiàn)有資源,減輕工作壓力。</p><p><b> 課題的研究目的</b></p><p> 研究該課題是為了通過對“超市進銷存管理系統(tǒng)”的設計與實現(xiàn),熟悉這類的信息管理系統(tǒng)的開發(fā)原理及流程。在設計過程,能夠深入
17、地理解面向對象設計方法的優(yōu)越性,獲得這些方面的相關經(jīng)驗。對一個即將畢業(yè)的計算機專業(yè)本科生來說,又想在軟件行業(yè)領域里有所發(fā)展,研究并應用面向對象設計方法是百益無一害的,可以使其走向社會后能夠快速地適應行業(yè)需求。這正是本次設計的根本目的所在。</p><p><b> 課題的研究意義</b></p><p> 首先,該課題屬于管理信息系統(tǒng)范疇。而管理信息系統(tǒng)(Mana
18、gement Information System,簡稱MIS)在現(xiàn)代社會已深入到各行各業(yè),是一個不斷發(fā)展的新學科,是由人和計算機設備或其他信息處理手段組成并用于管理信息的系統(tǒng)。再加上行業(yè)信息化的熱潮才剛剛開始,特別是中小型企業(yè)的信息化建設步伐剛剛邁出第一步。管理信息系統(tǒng)的開發(fā)的市場將是非常龐大的。這種需求對開發(fā)人員在數(shù)量上和素質(zhì)上的要求也是非常迫切的。為了滿足市場的需求以及能在競爭中取勝,系統(tǒng)設計人員就不僅僅是單純地滿足用戶對功能的要
19、求,還要從設計方法上來加以改進。 其次,面向對象方法是一種非常實用的軟件開發(fā)方法,它一出現(xiàn)就受到軟件技術人員的青睞,現(xiàn)在已經(jīng)成為計算機科學研究的一個重要領域,并逐漸成為軟件開發(fā)的一種主要方法。面向對象的程序設計將數(shù)據(jù)及對數(shù)據(jù)的操作方法封裝在一起,作為一個互相依存、不可分離的整體。采用這種方法來設計系統(tǒng),可以增加系統(tǒng)的安全性。同時通過繼承與多態(tài)性,使程序具有很高的可重用性,使軟件的開發(fā)和維護帶來了方便。由于面向對象方法的突出優(yōu)點,
20、它才被廣大用戶所愛好。</p><p><b> 第二章 系統(tǒng)分析</b></p><p><b> 2.1 需求分析</b></p><p> 經(jīng)過對系統(tǒng)的業(yè)務流程和系統(tǒng)數(shù)據(jù)流程的調(diào)查,用戶對系統(tǒng)的功能需求如下:</p><p> ?、僖蟠斯芾碥浖齑娈a(chǎn)品進行資料管理和統(tǒng)計,對產(chǎn)品
21、的進貨單和產(chǎn)品的銷售單進行錄入管理和統(tǒng)計;</p><p> ?、谝蟠斯芾碥浖⒏鶕?jù)用戶的需要對進貨、銷售、庫存情況進行查詢,并能提供庫存短缺預警功能;</p><p> ?、垡蟠斯芾碥浖橛脩籼峁┵~號管理工具,以便用戶對賬號進行管理,具體為添加用戶、刪除用戶、修改用戶密碼;</p><p> ?、芤蟠斯芾碥浖峁┢髽I(yè)人員管理,能夠對企業(yè)員工的分類管理,新員
22、工的加入以及員工刪除,修改基本信息等功能;</p><p> ?、菀蟠斯芾碥浖峁?shù)據(jù)信息的備份和還原功能。</p><p> 對這些功能需求進行分類,主要包含有以下幾種:進貨管理模塊、庫存管理模塊、銷售管理模塊、員工管理模塊和系統(tǒng)模塊。</p><p> 除上述功能外,系統(tǒng)還需要有以下功能:</p><p> 要有良好的人機界面,并
23、提供換膚功能。</p><p> 支持多人操作,要求有較好的權限分配功能。</p><p> 在進貨、退貨時存在一對多的關系,要求支持多行錄入功能。</p><p> 為了方便用戶查詢,要求支持多條件查詢。</p><p> 對于每種商品要求編號惟一,編號需要自動生成。</p><p><b> 支
24、持多種報表打印。</b></p><p> 支持賬目的詳細內(nèi)容瀏覽。</p><p> 2.2 可行性分析</p><p> 開發(fā)任何一個基于計算機的系統(tǒng),都會受到時間和資源上的限制。因此,在接受任何一個項目開發(fā)任務之前,必須根據(jù)客戶可能提供的時間和資源條件進行可行性分析,以減少項目開發(fā)風險,避免人力、物力和財力的浪費。</p>&
25、lt;p> 本系統(tǒng)數(shù)據(jù)庫采用目前比較流行的Microsoft SQL Server,該數(shù)據(jù)庫系統(tǒng)在安全性、準確性、運行速度方面有絕對的優(yōu)勢,并且處理數(shù)據(jù)庫量大,效率高;開發(fā)工具采用Delphi7,Delphi7是目前應用最廣泛的數(shù)據(jù)庫系統(tǒng)開發(fā)工具,可以快速開發(fā)Windows應用程序。</p><p><b> 第三章 總體設計</b></p><p><
26、;b> 3.1 項目規(guī)劃</b></p><p> 超市進銷存管理系統(tǒng)是一個典型的數(shù)據(jù)庫應用程序,由登錄模塊、主界面、基本信息模塊、進貨管理和銷售管理模塊、錢流管理模塊、庫存管理模塊、查賬模塊、統(tǒng)計分析模塊、系統(tǒng)維護模塊等組成。特規(guī)劃功能模塊如下:</p><p><b> 基本信息模塊</b></p><p> 基
27、本信息模塊主要實現(xiàn)庫存商品、內(nèi)部職員、往來單位、費用類型等的管理。</p><p><b> 進貨管理模塊</b></p><p> 進貨管理模塊主要管理超市商品進貨及退貨信息,支持多行錄入。</p><p><b> 銷售管理模塊</b></p><p> 銷售管理模塊主要管理超市商品銷售
28、及退貨信息,支持多行錄入。</p><p><b> 錢流管理模塊</b></p><p> 錢流管理模塊主要實現(xiàn)往來賬目的錄入和賬目的詳細信息瀏覽等功能。</p><p><b> 庫存管理模塊</b></p><p> 庫存管理模塊主要實現(xiàn)庫存貨品瀏覽、庫存盤點、庫存報警等功能。<
29、/p><p><b> 統(tǒng)計分析模塊</b></p><p> 統(tǒng)計分析模塊主要實現(xiàn)進貨統(tǒng)計分析、銷售統(tǒng)計分析和成本分析等功能。</p><p><b> 查賬模塊</b></p><p> 查賬模塊主要實現(xiàn)與供應商、代理商對賬、費用支出、應收應付等功能。</p><p>
30、;<b> 系統(tǒng)維護模塊</b></p><p> 系統(tǒng)維護模塊的主要實現(xiàn)本單位管理、操作員設置、數(shù)據(jù)的備份和還原等功能。</p><p> 根據(jù)項目規(guī)劃,可畫出超市進銷存管理系統(tǒng)的功能框圖,如圖3-1所示。</p><p> 圖3-1 系統(tǒng)功能模塊圖</p><p><b> 3.2數(shù)據(jù)庫設計<
31、;/b></p><p> 本系統(tǒng)根據(jù)上面的設計規(guī)劃出的主要實體有職員信息、進貨、用戶、費用、收款、進貨退貨。</p><p> 各個實體的E-R圖分別如圖3-2至圖3-7所示。</p><p> 圖3-2 職員信息的E-R圖</p><p> 圖3-3 進貨的E-R圖</p><p> 圖3-4用戶
32、的E-R圖</p><p> 圖3-5費用的E-R圖</p><p> 圖3-6 進貨退貨的E-R圖</p><p> 圖3-7收款的E-R圖</p><p> 實體與實體之間關系的E-R圖,如圖3-8所示。</p><p> 圖3-8 實體之間的E-R圖</p><p><b
33、> 第四章 系統(tǒng)設計</b></p><p><b> 4.1 設計目標</b></p><p> 根據(jù)超市的需求和進銷存管理的特點,該系統(tǒng)實施后,應達到以下目標:</p><p> 支持多行輸入,自動生成編號。</p><p> 界面美觀友好、信息查詢靈活、方便、快捷、準確。</p
34、><p> 強大的庫存預警功能,在意外中將損失降到最低。</p><p> 提高工作效率,降低成本。</p><p><b> 往來賬目詳細瀏覽。</b></p><p><b> 圖形化數(shù)據(jù)分析。</b></p><p> 對用戶輸入的數(shù)據(jù)進行過濾,當輸入有誤時提示用
35、戶。</p><p> 數(shù)據(jù)保密性強,用戶對應不同的操作級別。</p><p> 系統(tǒng)最大限度地實現(xiàn)了易安裝性、易維護性和易操作性。</p><p> 直接調(diào)用Word、Excel軟件。</p><p> 系統(tǒng)運行穩(wěn)定、安全可靠。</p><p> 4.2 開發(fā)及運行環(huán)境</p><p&
36、gt; 系統(tǒng)開發(fā)平臺:Delphi 7.0。</p><p> 數(shù)據(jù)庫管理系統(tǒng)軟件:SQL Server 2000。</p><p> 運行平臺:Windows xp/ Windows 2000。</p><p> 分辨率:最佳效果1024*768。</p><p> 4.3 邏輯結構設計</p><p>
37、 本系統(tǒng)數(shù)據(jù)庫采用SQL Server 2000數(shù)據(jù)庫,數(shù)據(jù)庫名稱為“db_EMS”。數(shù)據(jù)庫db_EMS中包含18個表。各個數(shù)據(jù)表的結構如下所示。</p><p> ?。?)職員信息表(tb_employ)</p><p> 職員信息表用來保存職員信息。職員信息表的結構如表4-1所示。</p><p> 表4-1 職員信息表結構</p>&l
38、t;p> ?。?)進貨主表(tb_warehouse_main)</p><p> 進貨主表用來保存進貨中主要和相同的信息。進貨主表的結構如表4-2所示。</p><p> 表4-2 進貨主表結構</p><p> ?。?)進貨明細表(tb_warehouse_detailed)</p><p> 進貨明細表用來保存進貨中商品
39、的詳細信息。進貨明細表結構如表4-3所示。</p><p> 表4-3 進貨明細表結構</p><p> ?。?)用戶權限表(tb_power)</p><p> 用戶權限表用來保存用戶權限設置信息。用戶權限表結構如表4-4所示。</p><p> 表4-4 用戶權限表結構</p><p> (5)費用表(
40、tb_cf)</p><p> 費用表用于記錄費用信息。費用表結構如表4-5所示。</p><p> 表4-5 費用表結構</p><p> (6)往來賬明細表(tb_currentaccount)</p><p> 往來賬明細表用于記錄往來單位的應收、應付賬目。往來賬明細表結構如表4-6所示。</p><p&
41、gt; 表4-6 往來賬明細表結構</p><p> ?。?)費用類型表(tb_freetype)</p><p> 費用類型表用于存儲費用類型信息。費用類型表表結構如表4-7所示。</p><p> 表4-7 費用類型表</p><p> (8)收款信息表(tb_gathering)</p><p>
42、收款信息表用于保存收款信息。收款信息表結構如表4-8所示。</p><p> 表4-8 收款信息表結構</p><p> (9)付款信息表(tb_payment)</p><p> 付款信息表用于保存付款信息。付款表結構如表4-9所示。</p><p> 表4-9 付款表結構</p><p> ?。?0
43、)銷售退貨明細表(tb_resell_detailed)</p><p> 銷售退貨明細表用于保存銷售退貨的詳細信息。銷售退貨明細表結構如表4-10所示。</p><p> 表4-10 銷售退貨明細表結構</p><p> ?。?1)銷售退貨表(tb_resell_main)</p><p> 銷售退貨表用于保存銷售退貨。銷售退貨表
44、結構如表4-11所示。</p><p> 表4-11 銷售退貨表結構</p><p> ?。?2)進貨退貨明細表(tb_rewarehouse_detailed)</p><p> 進貨退貨明細表用于保存進貨退貨詳細信息。進貨退貨明細表結構如表4-12所示。</p><p> 表4-12 進貨退貨明細表</p>&l
45、t;p> ?。?3)進貨退貨表(tb_rewarehouse_main)</p><p> 進貨退貨表用于存儲進貨退貨中主要的和相同的信息。進貨退貨表結構如表4-13所示。</p><p> 表4-13 退貨表</p><p> (14)銷售明細表(tb_sell_detailed)</p><p> 銷售明細表用于保存銷售詳
46、細信息。銷售明細表結構如表4-14所示。</p><p> 表4-14 銷售明細表</p><p> (15)銷售表(tb_sell_main)</p><p> 銷售表用于保存銷售信息中主要的和相同的信息。銷售表結構如表4-15所示。</p><p> 表4-15 銷售表結構</p><p> ?。?6)
47、庫存商品信息表(tb_stock)</p><p> 庫存商品信息表用于保存庫存商品信息。庫存商品表結構如表4-16所示。</p><p> 表4-16 庫存商品表結構 </p><p> (17)本單位信息表(tb_unit)</p><p> 本單位信息表用于保存本單位的信息。本單位信息表結構如表4-17所示。</p>
48、;<p> 表4-17 本單位信息表結構</p><p> (18)往來單位信息表(tb_units)</p><p> 往來單位信息表用于保存往來單位的信息。往來單位信息表結構如表4-18所示。</p><p> 表4-18 往來單位信息表結構</p><p> 第五章 主要功能模塊設計</p>
49、<p> 5.1 主窗體設計</p><p> 主窗體是程序的控制中心,其他模塊都是通過主窗體來調(diào)用,所以主窗體的界面要設計的美觀易操作。超市進銷存管理系統(tǒng)主窗體運行結果如圖5-1所示。</p><p> 圖5-1 主窗體運行界面</p><p><b> 1.設計步驟</b></p><p>
50、?。?)運行Delphi會自動創(chuàng)建一個窗體,設置該窗體為程序主窗體,命名為“F_zct”,設置窗體的Caption屬性為“超市進銷存管理系統(tǒng)”;BorderStyle屬性為“bsDialog”;KeyPreview屬性為“True”。</p><p> ?。?)在“Additional”組件頁中點選“TActionManager”組件,添加到窗體上,命名為“ActionManage1”,雙擊該組件打開“動作編輯器
51、”,選擇“Toolbars”選項卡,單擊【New】按鈕添加“TActionToolBar”對象,命名為“ActionToolBar1”,如圖5-2所示。</p><p> 圖5-2 添加TActionToolBar對象</p><p> ?。?)選擇“Actions”選項卡,單擊【New Action】按鈕,添加“TAction”對象,并在“Object Inspector”窗口中設
52、置Caption屬性,如圖5-3所示。</p><p> 圖5-3 添加TAction對象</p><p> (4)在窗體上點選ActionManager1組件,在“Object Inspector”窗口中,單擊ActionBars屬性右側的【…】按鈕,彈出如圖5-4所示的對話框。</p><p> 圖5-4 菜單欄設置界面1</p><
53、;p> ?。?)在彈出的對話框中點選“0-ActionBar->ActionTooBar1”,在“Object Inspector”窗口中,單擊Items屬性右側的【…】按鈕,在彈出的對話框中,單擊【Add New】按鈕添加菜單項,并設置各個菜單項的Action屬性,如圖5-5所示。</p><p> 圖5-5 菜單欄設置界面2</p><p> ?。?)點選各菜單項,在“O
54、bject Inspector”窗口中,單擊Items屬性右側的【…】按鈕,在彈出的對話框中設置子菜單項。</p><p> ?。?)在“Win32”組件頁中點選“TStatusBar”組件,添加到窗體上,命名為“StatusBar1”。TStatusBar組件用于顯示狀態(tài)信息,雙擊StatusBar1組件,在彈出的對話框中單擊【Add New】按鈕添加面板。在“Object Inspector”窗口中設置面板的
55、Width屬性和Caption屬性,如圖5-6所示。</p><p> 圖5-6 面板編輯器界面</p><p> ?。?)在“Standard”組件頁中點選“TPanel”組件。在窗體上添加3個TPanel組件,分別命名為“Panel3”、“Panel1”、“Panel4”,分別設置其Align屬性為“alTop”、“alLeft”、“alClient”。</p>&l
56、t;p> ?。?)在“Additional”組件頁中點選“TImage”組件,分別添加到Panel3組件和Panel1組件上,并在“Object Inspector”窗口中通過Picture屬性為其加載圖片。當用戶單擊主窗體左側的按鈕時,在右則將彈出相應的功能圖片。在右側的面板中添加多個TPanel組件,并在相應的TPanel組件上添加TImage組件,并為TImage組件加載圖片。</p><p> ?。?/p>
57、10)在“Additional”組件頁中點選“TSpeedButton”組件,將TSpeedButton組件添加到圖片相應的位置,設置其Flat屬性為“True”;Caption屬性為空。</p><p><b> 2.程序相關代碼</b></p><p> 在窗體的OnKeyDown事件處理過程中設置用戶按下〈F5〉鍵時關閉窗體。代碼如下:</p>
58、<p> procedure TF_zct.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);</p><p><b> begin</b></p><p> F_zct.KeyPreview:=True; //設置窗體先接受鍵盤按下事件</p><
59、;p> if key=vk_F5 then Close;</p><p><b> end;</b></p><p> 在窗體的OnCloseQuery事件處理過程中讓用戶確認是否關閉窗體。代碼如下:</p><p> procedure TF_zct.FormCloseQuery(Sender: TObject; var Can
60、Close: Boolean);</p><p><b> begin</b></p><p> if Application.MessageBox('是否退出系統(tǒng)?','提示',mb_yesno)=id_no then</p><p> CanClose:=False;</p><p&
61、gt;<b> end;</b></p><p> 在窗體右側按鈕的單擊事件處理過程中,設置相應的面板在其他面板前面。代碼如下:</p><p> procedure TF_zct.SpeedButton1Click(Sender: TObject);</p><p><b> begin</b></p>
62、;<p> kumanage.BringToFront; //設置面板在最前面</p><p><b> end;</b></p><p> 在窗體右側的功能按鈕單擊事件處理過程中,動態(tài)創(chuàng)建相應的功能窗體。動態(tài)創(chuàng)建“庫存狀況窗體”代碼如下:</p><p> procedur
63、e TF_zct.SpeedButton9Click(Sender: TObject);</p><p><b> begin</b></p><p> Application.CreateForm(TF_kczk, F_kczk); //創(chuàng)建窗體</p><p> F_kczk.ShowModal;
64、 //顯示窗體</p><p> F_kczk.Free; //釋放窗體</p><p><b> end;</b></p><p> 在窗體的OnShow事件處理過程中,添加TCheckBox組件到面板中。指定TCheckBox組件的父對象并設置該
65、組件的大小和位置。代碼如下:</p><p> with statusbar1 do</p><p><b> begin</b></p><p> checkbox1.Parent:=statusbar1;</p><p> checkbox1.Top:=4;</p><p> che
66、ckbox1.Height:=Height-4;</p><p> checkbox1.Width:=75;</p><p> checkbox1.Left:=Panels[0].Width+Panels[1].Width+Panels[2].Width+10;</p><p> checkbox1.Visible:=true;</p><
67、p><b> end;</b></p><p> 5.2 基礎窗體創(chuàng)建</p><p> 創(chuàng)建基礎窗體主要為了提高開發(fā)速度和代碼的利用率,從基礎窗體繼承的子窗體具有基礎窗體的全部功能。基礎窗體如圖5-7所示。</p><p><b> 圖5-7 基礎窗體</b></p><p>
68、1.基礎窗體設計步驟</p><p> 添加一個新窗體,命名為“F_base”,設置其BorderStyle屬性為“bsDialog”;KeyPreview屬性為“True”。</p><p><b> 2.程序相關代碼</b></p><p> 在窗體的OnKeyPress事件處理過程中設置〈Enter〉鍵代替〈Tab〉鍵。代碼如下:&
69、lt;/p><p> procedure TF_base.FormKeyPress(Sender: TObject; var Key: Char);</p><p><b> begin</b></p><p> if Key=#13 then</p><p> perform(WM_NEXTDLGCTL,0,0);
70、</p><p><b> end;</b></p><p> 5.3 數(shù)據(jù)模塊設計</p><p> 數(shù)據(jù)模塊窗體主要功能是統(tǒng)一管理數(shù)據(jù)組件。數(shù)據(jù)模塊如圖5-8所示。</p><p><b> 圖5-8 數(shù)據(jù)模塊</b></p><p><b> 1.
71、數(shù)據(jù)模塊創(chuàng)建</b></p><p> ?。?)在Delphi中選擇“File”/“New”/“Data Module”菜單項,新建一個數(shù)據(jù)模塊,命名為“F_dm”。</p><p> ?。?)在“ADO”組件頁中點選“TADOConnection”組件,添加到窗體上,命名為“ADOConnection1”。TADOConnection組件用于連接數(shù)據(jù)庫,其他數(shù)據(jù)庫組件通過它連
72、接數(shù)據(jù)庫。</p><p> (3)點選ADOConnection1組件,在“Object Inspector”窗口中,單擊ConnectionString屬性右側的【…】按鈕,彈出對話框,如圖5-9所示。</p><p> 圖5-9 設置連接字符串界面</p><p> (4)單擊【Build】按鈕,在彈出的對話框中 “提供程序”選項卡中選擇希望連接的數(shù)據(jù)
73、所需的驅動程序,如圖5-10所示。</p><p> 圖5-10 驅動程序選擇界面</p><p> ?。?)選擇“連接”選項卡,設置數(shù)據(jù)庫連接相關設置,如圖5-11所示。</p><p> 圖5-11 數(shù)據(jù)庫連接設置界面</p><p> (6)單擊【測試連接】按鈕,如果連接成功,則提示成功,單擊【確定】按鈕完成數(shù)據(jù)庫的連接。<
74、;/p><p> ?。?)在窗體上添加TADOQuery組件和TADOCommand組件,設置它們的Connection屬性為“ADOConnection1”。</p><p> 5.4 庫存商品模塊設計</p><p> 庫存商品模塊主要實現(xiàn)瀏覽、添加、修改、刪除、查詢、打印商品信息等功能。庫存商品模塊運行結果如圖5-12所示。</p><p
75、> 圖5-12 庫存商品模塊運行界面</p><p><b> 1.窗體設計步驟</b></p><p> ?。?)選擇“File”/“New”/“Other”菜單項,打開“New Items”對話框,選擇“ima”選項卡,點選“F_base”選項,以繼承方式使用該窗體。單擊【OK】按鈕添加一個新窗體,命名為“F_kcsp”,設置Caption屬性為“庫存
76、商品”。</p><p> (2)在“Win32”組件頁中點選“TToolBar”組件,添加到窗體上。在該組件上添加TSpeedButton組件,在“Object Inspector”窗口中通過Caption屬性為其設置相應的文本,通過Glyph屬性為其指定圖標。右鍵單擊TToolBar組件,在彈出的菜單中選擇“New Button”菜單項,并設置其Style屬性為“tbsDivider”。</p>
77、<p> (3)在窗體上添加TPanel組件,命名為“Panel1”,設置Align屬性為“alBottom”;Visable屬性為“False”。在TPanel組件上添加TGroupBox組件,設置其Caption屬性為“查詢條件”。在“Standard”組件頁中找到TLabel組件、TEdit組件和TComboBox組件,添加到TGroupBox組件上。點選TComboBox組件,在“Object Inspector
78、”窗口中,單擊Items屬性,在彈出的對話框中添加項目,如圖5-13所示。</p><p> 圖5-13 添加項目界面</p><p> ?。?)在“ADO”組件頁中點選“TADOQuery”組件,添加到窗體上,命名為“ADOQuery1”。在“Data Access”組件頁中點選“TDataSource”組件,添加到窗體上,命名為“DataSource1”。設置ADOQuery1組件
79、的Connection屬性為“F_dm.ADOConnection1”;設置DataSource1組件的DataSet屬性為“ADOQuery1”。</p><p> ?。?)在“Data Controls”組件頁中點選“TDBGrid”組件,添加到窗體上,命名為“DBGrid1”,設置其Align屬性為“alClient”;DataSource屬性為“DataSource1”,雙擊DBGrid1組件,在彈出的列
80、編輯器中設置字段標題,如圖5-14所示。</p><p> 圖5-14 為TDBGrid組件設置列標題</p><p> (6)在“Rave”組件頁中點選“TRvDataSetConnection”組件、“TRvProject”組件,添加到窗體上,分別命名為“RvDataSetConnection1”、“RvProject1”,設置RvDataSetConnection1組件的Dat
81、aSet屬性為“ADOQuery1”。設置RvProject1組件的ProjectFile屬性為制作的報表文件。</p><p><b> 2.程序相關代碼</b></p><p> 在窗體的OnShow事件處理過程中打開庫存商品表。代碼如下:</p><p> procedure TF_kcsp.FormShow(Sender: TOb
82、ject);</p><p><b> begin</b></p><p> inherited; //由于窗體是繼承自基窗體該代碼自動生成。意為調(diào)用父類的同名方法。</p><p> change:=False;</p><p> with adoquery1 do</p><p&
83、gt;<b> begin</b></p><p><b> Close;</b></p><p> SQL.Clear;</p><p> SQL.Add('Select * from tb_stock order by tradecode asc'); //排序</p>&
84、lt;p><b> Open;</b></p><p><b> end;</b></p><p><b> end;</b></p><p> 在【添加】按鈕的單擊事件處理過程中動態(tài)創(chuàng)建添加庫存商品基本信息窗體。代碼如下:</p><p> procedure
85、 TF_kcsp.SpeedButton4Click(Sender: TObject);</p><p><b> begin</b></p><p> inherited; //調(diào)用父類的同名方法</p><p> Application.CreateForm(TF_sbjbcx, F_sbjbcx); //創(chuàng)建窗體</
86、p><p> F_sbjbcx.ShowModal; //顯示窗體</p><p> F_sbjbcx.Free; //釋放窗體</p><p><b> end;</b></p><p> 在【刪除】按鈕的單擊事件處理過程中當用戶確認刪
87、除后刪除數(shù)據(jù)。代碼如下:</p><p> procedure TF_kcsp.SpeedButton2Click(Sender: TObject);</p><p><b> begin</b></p><p> inherited; //調(diào)用父類的同名方法</p><p><b> try&l
88、t;/b></p><p> if Application.MessageBox('是否刪除當前記錄?','提示',mb_yesno)=id_yes then</p><p> Adoquery1.Delete;</p><p><b> except</b></p><p>
89、 Application.MessageBox('不能刪除','提示',mb_yesno);</p><p><b> end;</b></p><p><b> end;</b></p><p> 在【查詢】按鈕的單擊事件處理過程中動態(tài)設置查詢條件。代碼如下:</p>
90、<p> procedure TF_kcsp.SpeedButton1Click(Sender: TObject);</p><p><b> var</b></p><p> searchwhat:string;</p><p><b> begin</b></p><p>
91、 inherited; //調(diào)用父類的同名方法</p><p> Panel1.Visible:=not(Panel1.Visible);</p><p> if Panel1.Visible=False then</p><p><b> begin</b></p><p> searchwhat:=
92、39;';</p><p> case combobox1.ItemIndex of //設置要查找的字段</p><p> 0: searchwhat:='tradecode';</p><p> 1: searchwhat:='fullnamed';</p><p> 2: se
93、archwhat:='name';</p><p> 3: searchwhat:='shortcode';</p><p><b> end;</b></p><p><b> try</b></p><p> with ADoquery1 do</p
94、><p><b> begin</b></p><p><b> Close;</b></p><p> SQL.Clear;</p><p> SQL.Add('select * from tb_stock '); //寫SQL語句</p><p
95、> SQL.Add('where '+''+searchwhat+''+' like :a order by tradecode');</p><p> parameters.ParamByName('a').Value:='%'+Trim(Edit1.Text)+'%';</p>
96、<p><b> open;</b></p><p><b> end;</b></p><p> if Application.MessageBox('是否刷新表?','提示',mb_yesno)=Id_yes then</p><p> with ADoquery1
97、 do</p><p><b> begin</b></p><p><b> Close;</b></p><p> SQL.Clear;</p><p> SQL.Add('select * from tb_stock order by tradecode'); //
98、刷新</p><p><b> open;</b></p><p><b> end;</b></p><p><b> except</b></p><p> Application.MessageBox('請正確輸入條件','提示',
99、mb_ok);</p><p><b> end;</b></p><p><b> end;</b></p><p><b> end;</b></p><p> 在【打印】按鈕的單擊事件處理過程中指定報表文件、預覽報表。代碼如下:</p><p&
100、gt; procedure TF_kcsp.SpeedButton6Click(Sender: TObject);</p><p><b> begin</b></p><p> inherited; //調(diào)用父類的同名方法</p><p><b> //指定報表文件</b></p><
101、;p> Rvproject1.ProjectFile:=ExtractFilePath(Application.ExeName)+'stockprint.rav'; </p><p> RvProject1.Execute; //預覽報表</p><p><b> end;</b></p><p> 5.5
102、商品基本信息模塊設計</p><p> 商品基本信息模塊主要功能是錄入商品基本信息,便于其他窗體使用,在該模塊中可以設置商品的報警上下限。商品基本信息模塊運行結果如圖5-15所示。</p><p> 圖5-15 商品基本信息模塊運行界面</p><p><b> 1.窗體設計步驟</b></p><p> ?。?
103、)從基礎窗體繼承一個窗體,命名為“F_sbjbcx”,設置其Caption屬性為“商品基本信息”。</p><p> (2)在“Additional”組件頁中點選“TBevel”組件,為每一類數(shù)據(jù)添加邊框。</p><p> ?。?)在“Additional”組件頁中點選“TGroupBox”組件,添加到窗體上,命名為“GroupBox1”,設置其Caption屬性為“輸入報警值----
104、-請輸入大于0的數(shù) 0為不報警”。在GroupBox1組件上添加2個TLabel組件和2個TEdit組件。分別設置TLabel組件的Caption屬性為“商品報警上限:”、“商品報警下限:”。</p><p> ?。?)在窗體上添加TLabel組件和TEdit組件,在“Additional”組件頁中點選“TBitBtn”組件,添加到窗體上,分別命名為“BitBtn1”、“BitBtn2”,設置BitBtn1組
105、件的Caption屬性為“保存”,通過Glyph屬性為其指定圖標。設置BitBtn2組件的Caption屬性為“退出”,通過Glyph屬性為其指定圖標。</p><p><b> 2.程序相關代碼</b></p><p> 在窗體的OnShow事件處理過程中如果為修改,將要修改的記錄顯示在窗體的編輯框中。代碼如下:</p><p> pr
106、ocedure TF_sbjbcx.FormShow(Sender: TObject);</p><p><b> begin</b></p><p> inherited; //調(diào)用父類的同名方法</p><p><b> try</b></p><p> if F_kcsp.ch
107、ange=True then //判斷是否為修改</p><p> with F_kcsp.ADOQuery1 do</p><p><b> begin</b></p><p> Edit1.Text:=fieldbyname('fullnamed').AsString;</p><p>
108、Edit2.Text:=fieldbyname('tradecode').AsString;</p><p> Edit3.Text:=fieldbyname('name').AsString;</p><p> Edit4.Text:=fieldbyname('type').AsString;</p><p>
109、 Edit5.Text:=fieldbyname('standard').AsString;</p><p> Edit6.Text:=fieldbyname('unit').AsString;</p><p> Edit7.Text:=fieldbyname('produce').AsString;</p><p&g
110、t; Edit8.Text:=fieldbyname('provideinf').AsString;</p><p> Edit9.Text:=fieldbyname('memo').AsString;</p><p> Edit10.Text:=inttostr(fieldbyname('upperlimit').AsInteger)
111、;</p><p> Edit11.Text:=inttostr(fieldbyname('lowerlimit').AsInteger);</p><p><b> end</b></p><p><b> else</b></p><p><b> begin&
112、lt;/b></p><p> F_kcsp.getspbh(sender); //如果為添加操作調(diào)用過程getspbh得到編號</p><p> Edit2.Text:=F_kcsp.spbh;</p><p><b> end;</b></p><p><b> except</b&
113、gt;</p><p><b> end;</b></p><p><b> end;</b></p><p> 調(diào)用getspbh過程得到商品編號。getspbh過程完整代碼如下:</p><p> procedure TF_kcsp.getspbh(sender:Tobject);
114、 //得到商品編號</p><p><b> begin</b></p><p> adoquery1.Last;</p><p> if adoquery1.RecordCount=0 then</p><p> spbh:='T'+formatfloat('00000',1)
115、 //格式化編號</p><p><b> else</b></p><p> spbh:='T'+Formatfloat('00000',strtoint(copy(adoquery1.Fields[0].AsString,2,5))+1);</p><p><b> end;</b>
116、;</p><p> 5.6 進貨單錄入模塊設計</p><p> 進貨單錄入窗體主要功能是錄入進貨的相關信息,在該模塊中支持多行錄入,可以調(diào)用其他信息提示窗體。進貨單錄入模塊運行結果如圖5-16所示。</p><p> 圖5-16 進貨單錄入模塊運行界面</p><p><b> 1.窗體設計步驟</b>&l
117、t;/p><p> (1)從基礎窗體繼承一個窗體,命名為“F_jhd”,設置其Caption屬性為“進貨單錄入”。</p><p> (2)在窗體上添加TLabel組件、TEdit組件、TDateTimePicker組件,用于輸入信息。在“Additional”組件頁中點選“TStringGrid”組件,添加到窗體上,命名為“StringGrid1”。設置StringGrid1組件的Row
118、Count屬性為“10”;ColCount屬性為“10”。</p><p> (3)在窗體上添加TSpeedButton組件,通過Glyph屬性為其指定圖標。添加TBitBtn組件,用于完成“保存”、“取消”功能。</p><p> (4)在窗體上添加TPanel組件,命名為“Panel1”,設置其Caption屬性為空。用于顯示統(tǒng)計應付金額。</p><p>
119、 (5)在窗體上添加TADOQuery組件,命名為“ADOQuery1”,設置其Connection屬性為“F_dm.ADOConnection1”。</p><p><b> 2.程序相關代碼</b></p><p> 在窗體的OnShow事件處理過程中初始化相關信息。代碼如下:</p><p> procedure TF_jhd.F
120、ormShow(Sender: TObject);</p><p><b> begin</b></p><p> inherited;</p><p> F_zct.wf:=1; //窗體標記</p><p> DateTimePicker1.Dat
121、e:=now(); //初始化為當天日期</p><p> with F_jhd.StringGrid1 do //設置列標題</p><p><b> begin</b></p><p> Cells[1,0]:='商品編號';</p><
122、;p> Cells[2,0]:='商品全稱';</p><p> Cells[3,0]:='商品型號';</p><p> Cells[4,0]:='商品規(guī)格';</p><p> Cells[5,0]:='單位';</p><p> Cells[6,0]:=
123、39;產(chǎn)地';</p><p> Cells[7,0]:='數(shù)量';</p><p> Cells[8,0]:='進貨價';</p><p> Cells[9,0]:='金額';</p><p><b> end;</b></p><p&
124、gt; with adoquery1 do</p><p><b> begin</b></p><p><b> close;</b></p><p> SQl.Clear;</p><p> SQl.Add('select * from tb_warehouse_main
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市進銷存管理系統(tǒng)(畢業(yè)設計)
- 畢業(yè)設計----超市進銷存管理系統(tǒng)
- 畢業(yè)設計----超市進銷存管理系統(tǒng).doc
- vb畢業(yè)設計----超市進銷存管理系統(tǒng)
- 超市進銷存管理系統(tǒng)畢業(yè)設計開題報告
- 畢業(yè)設計-進銷存管理系統(tǒng)
- 進銷存管理系統(tǒng)畢業(yè)設計
- 進銷存管理系統(tǒng)畢業(yè)設計
- 畢業(yè)設計(論文)-vc++超市進銷存管理系統(tǒng)
- jsp超市進銷存管理系統(tǒng)
- 超市進銷存管理系統(tǒng).doc
- 超市進銷存管理系統(tǒng)畢業(yè)論文
- 超市進銷存管理系統(tǒng)畢業(yè)論文
- 公司進銷存管理系統(tǒng)畢業(yè)設計
- 進銷存管理系統(tǒng)畢業(yè)設計6
- 畢業(yè)設計(論文)+進銷存管理系統(tǒng)
- 某進銷存管理系統(tǒng)畢業(yè)設計
- 藥品進銷存管理系統(tǒng)畢業(yè)設計
- 企業(yè)進銷存管理系統(tǒng)畢業(yè)設計
- 某進銷存管理系統(tǒng)畢業(yè)設計
評論
0/150
提交評論