《進(jìn)銷存管理系統(tǒng)》論文范例
《《進(jìn)銷存管理系統(tǒng)》論文范例》由會(huì)員分享,可在線閱讀,更多相關(guān)《《進(jìn)銷存管理系統(tǒng)》論文范例(35頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 進(jìn)銷存管理系統(tǒng) 學(xué) 院 專 業(yè) 班 級(jí) 學(xué) 號(hào) 姓 名 指導(dǎo)教師 教師職稱 年 月 日 29 摘要 【摘要】 進(jìn)銷存管理系統(tǒng)是專為大中型企業(yè)的產(chǎn)品分銷體系建立的電子商務(wù)應(yīng)用系統(tǒng)。是面向一種異地分布式的企業(yè)銷售管理系統(tǒng),支持供需鏈管理的計(jì)劃和控制系統(tǒng)。通常情況下進(jìn)銷存管理系統(tǒng)平臺(tái)包括三級(jí)子系統(tǒng),即下級(jí)分銷商管理系統(tǒng)、分公司管理系統(tǒng)和總公司管理系統(tǒng)。此外,分銷商管理系統(tǒng)還實(shí)現(xiàn)了商品庫(kù)存的管理。分公司管理系統(tǒng)為每
2、個(gè)分公司實(shí)現(xiàn)了進(jìn)銷存管理,系統(tǒng)中還包括訂單管理、綜合查詢等管理功能。 【關(guān)鍵詞】 進(jìn)銷存 進(jìn)貨 銷售 目錄 摘要 1 目錄 1 0 引言 1 1 系統(tǒng)分析 2 1.1 需求分析 2 1.2 可行性分析 2 2 總體設(shè)計(jì) 2 2.1 項(xiàng)目規(guī)劃 2 2.2 功能框圖 3 3 系統(tǒng)設(shè)計(jì) 3 3.1 設(shè)計(jì)目標(biāo) 3 3.2 開(kāi)發(fā)及運(yùn)行環(huán)境 4 3.3 邏輯結(jié)構(gòu)設(shè)計(jì) 4 4 主要功能模塊設(shè)計(jì) 5 4.1 主窗體設(shè)計(jì) 5 4.2 基礎(chǔ)窗體創(chuàng)建 9
3、4.3 數(shù)據(jù)模塊設(shè)計(jì) 9 4.4 庫(kù)存商品模塊設(shè)計(jì) 12 4.5 商品基本信息模塊設(shè)計(jì) 15 4.6 進(jìn)貨單錄入模塊設(shè)計(jì) 17 附錄A 參考文獻(xiàn) 28 附錄B 數(shù)據(jù)表 29 附錄C 文件架構(gòu)圖 36 0 引言 隨著我國(guó)經(jīng)濟(jì)的高速發(fā)展,中小企業(yè)在社會(huì)經(jīng)濟(jì)中扮演的角色越來(lái)越重要,已成為最多元化和最具創(chuàng)新精神的部分。但是隨著企業(yè)的發(fā)展,客戶的增多,企業(yè)賬目混亂,庫(kù)存不準(zhǔn),信息反饋不及時(shí)等問(wèn)題也接踵而至。這些問(wèn)題已成為制約中小企業(yè)發(fā)展的瓶頸,嚴(yán)重制約了中小企業(yè)的發(fā)展壯大。越來(lái)越多的企業(yè)經(jīng)營(yíng)者認(rèn)識(shí)到:?jiǎn)渭兛繉?duì)商品的占有,靠個(gè)人經(jīng)驗(yàn),已經(jīng)很難把握市場(chǎng),很難在激烈的競(jìng)
4、爭(zhēng)中取勝。如何借助IT手段、如何通過(guò)信息化,加強(qiáng)核心競(jìng)爭(zhēng)力,實(shí)現(xiàn)持續(xù)發(fā)展已成為中小企業(yè)亟待解決的關(guān)鍵問(wèn)題。 我國(guó)中小企業(yè)有70%是零售企業(yè),企業(yè)經(jīng)營(yíng)涉及進(jìn)、銷、存多個(gè)環(huán)節(jié),涉及商品種類繁多,業(yè)務(wù)量大,庫(kù)存管理復(fù)雜,使用手工管理已無(wú)法勝任。如何采用先進(jìn)的計(jì)算機(jī)系統(tǒng)管理進(jìn)貨、庫(kù)存、銷售等諸多環(huán)節(jié)也已成為趨勢(shì)及必然。 1 系統(tǒng)分析 1.1 需求分析 通過(guò)調(diào)查,要求系統(tǒng)需要有以下功能: q 要有良好的人機(jī)界面,并提供換膚功能。 q 支持多人操作,要求有較好的權(quán)限分配功能。 q 在進(jìn)貨、退貨時(shí)存在一對(duì)多的關(guān)系,要求支持多行錄入功能。 q 為了方便用戶查詢,要求支持多條件查詢。
5、q 對(duì)于每種商品要求編號(hào)惟一,編號(hào)需要自動(dòng)生成。 q 支持多種報(bào)表打印。 q 支持賬目的詳細(xì)內(nèi)容瀏覽。 1.2 可行性分析 開(kāi)發(fā)任何一個(gè)基于計(jì)算機(jī)的系統(tǒng),都會(huì)受到時(shí)間和資源上的限制。因此,在接受任何一個(gè)項(xiàng)目開(kāi)發(fā)任務(wù)之前,必須根據(jù)客戶可能提供的時(shí)間和資源條件進(jìn)行可行性分析,以減少項(xiàng)目開(kāi)發(fā)風(fēng)險(xiǎn),避免人力、物力和財(cái)力的浪費(fèi)。 本系統(tǒng)數(shù)據(jù)庫(kù)采用目前比較流行的Microsoft SQL Server,該數(shù)據(jù)庫(kù)系統(tǒng)在安全性、準(zhǔn)確性、運(yùn)行速度方面有絕對(duì)的優(yōu)勢(shì),并且處理數(shù)據(jù)庫(kù)量大,效率高;開(kāi)發(fā)工具采用Delphi7,Delphi7是目前應(yīng)用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)工具,可以快速開(kāi)發(fā)Windows應(yīng)用
6、程序。 2 總體設(shè)計(jì) 2.1 項(xiàng)目規(guī)劃 進(jìn)銷存管理系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫(kù)應(yīng)用程序,由登錄模塊、主界面、基本信息模塊、進(jìn)貨管理和銷售管理模塊、錢流管理模塊、庫(kù)存管理模塊、查賬模塊、統(tǒng)計(jì)與分析模塊、系統(tǒng)維護(hù)模塊等組成。特規(guī)劃功能模塊如下: q 基本信息模塊 基本信息模塊的主要實(shí)現(xiàn)庫(kù)存商品、內(nèi)部職員、往來(lái)單位、費(fèi)用類型信息等管理。 q 進(jìn)貨管理模塊 進(jìn)貨管理模塊主要管理企業(yè)商品進(jìn)貨及退貨信息,支持多行錄入。 q 銷售管理模塊 銷售管理模塊主要管理企業(yè)商品銷售及退貨信息,支持多行錄入。 q 錢流管理模塊 錢流管理模塊主要實(shí)現(xiàn)往來(lái)賬目的錄入和賬目的詳細(xì)信息瀏覽等功能。 q 庫(kù)
7、存管理模塊 庫(kù)存管理模塊主要實(shí)現(xiàn)庫(kù)存貨品瀏覽、庫(kù)存盤點(diǎn)、庫(kù)存報(bào)警等功能。 q 統(tǒng)計(jì)分析模塊 統(tǒng)計(jì)分析模塊主要實(shí)現(xiàn)進(jìn)貨統(tǒng)計(jì)分析、銷售統(tǒng)計(jì)分析和成本分析等功能。 q 查賬模塊 查賬模塊主要實(shí)現(xiàn)與供應(yīng)商、代理商對(duì)賬、費(fèi)用管理、應(yīng)收應(yīng)付等功能。 q 系統(tǒng)維護(hù)模塊 系統(tǒng)維護(hù)模塊的主要實(shí)現(xiàn)本單位管理、操作員設(shè)置、數(shù)據(jù)的備份和還原等功能。 2.2 功能框圖 圖1 功能框圖 3 系統(tǒng)設(shè)計(jì) 3.1 設(shè)計(jì)目標(biāo) 根據(jù)企業(yè)的需求和進(jìn)銷存管理的特點(diǎn),該系統(tǒng)實(shí)施后,應(yīng)達(dá)到以下目標(biāo): q 支持多行輸入,自動(dòng)生成編號(hào)。 q 界面美觀友好、信息查詢靈活、方便、快捷、準(zhǔn)確。 q 強(qiáng)大的庫(kù)
8、存預(yù)警功能,在意外中將損失降到最低。 q 提高工作效率,降低成本。 q 往來(lái)賬目詳細(xì)瀏覽。 q 圖形化數(shù)據(jù)分析。 q 對(duì)用戶輸入的數(shù)據(jù)進(jìn)行過(guò)濾,當(dāng)輸入有誤時(shí)提示用戶。 q 數(shù)據(jù)保密性強(qiáng),用戶對(duì)應(yīng)不同的操作級(jí)別。 q 系統(tǒng)最大限度地實(shí)現(xiàn)了易安裝性、易維護(hù)性和易操作性。 q 直接調(diào)用Word、Excel軟件。 q 系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。 3.2 開(kāi)發(fā)及運(yùn)行環(huán)境 系統(tǒng)開(kāi)發(fā)平臺(tái):Delphi 7.0。 數(shù)據(jù)庫(kù)管理系統(tǒng)軟件:SQL Server 2000。 運(yùn)行平臺(tái):Windows xp/ Windows 2000。 分辨率:最佳效果1024*768。 3.3 邏輯結(jié)構(gòu)
9、設(shè)計(jì) 本系統(tǒng)數(shù)據(jù)庫(kù)采用SQL Server 2000數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名稱為“db_EMS”。數(shù)據(jù)庫(kù)db_EMS中包含18個(gè)表。數(shù)據(jù)庫(kù)中的數(shù)據(jù)表參見(jiàn)附錄B。 4 主要功能模塊設(shè)計(jì) 4.1 主窗體設(shè)計(jì) 主窗體是程序的控制中心,其他模塊都是通過(guò)主窗體來(lái)調(diào)用,所以主窗體的界面要設(shè)計(jì)的美觀易操作。進(jìn)銷存管理系統(tǒng)主窗體運(yùn)行結(jié)果如圖4所示。 圖4 主窗體運(yùn)行的結(jié)果 1.設(shè)計(jì)步驟 (1)運(yùn)行Delphi會(huì)自動(dòng)創(chuàng)建一個(gè)窗體,設(shè)置該窗體為程序主窗體,命名為“F_zct”,設(shè)置窗體的Caption屬性為“進(jìn)銷存管理系統(tǒng)”;BorderStyle屬性為“bsDialog”;KeyPrevie
10、w屬性為“True”。 (2)在“Additional”組件頁(yè)中點(diǎn)選“TActionManager”組件,添加到窗體上,命名為“ActionManage1”,雙擊該組件打開(kāi)“動(dòng)作編輯器”,選擇“Toolbars”選項(xiàng)卡,單擊【New】按鈕添加“TActionToolBar”對(duì)象,命名為“ActionToolBar1”,如圖5所示。 圖5 添加TActionToolBar對(duì)象 (3)選擇“Actions”選項(xiàng)卡,單擊【New Action】按鈕,添加“TAction”對(duì)象,并在“Object Inspector”窗口中設(shè)置Caption屬性,如圖6所示。 圖6 添加TActi
11、on對(duì)象 (4)在窗體上點(diǎn)選ActionManager1組件,在“Object Inspector”窗口中,單擊ActionBars屬性右側(cè)的【…】按鈕,彈出如圖7所示的對(duì)話框。 圖7 菜單欄設(shè)置1 (5)在彈出的對(duì)話框中點(diǎn)選“0-ActionBar->ActionTooBar1”,在“Object Inspector”窗口中,單擊Items屬性右側(cè)的【…】按鈕,在彈出的對(duì)話框中,單擊【Add New】按鈕添加菜單項(xiàng),并設(shè)置各個(gè)菜單項(xiàng)的Action屬性,如圖8所示。 圖8 菜單欄設(shè)置2 (6)點(diǎn)選各菜單項(xiàng),在“Object Inspector”窗口中,單擊Items
12、屬性右側(cè)的【…】按鈕,在彈出的對(duì)話框中設(shè)置子菜單項(xiàng)。 (7)在“Win32”組件頁(yè)中點(diǎn)選“TStatusBar”組件,添加到窗體上,命名為“StatusBar1”。TStatusBar組件用于顯示狀態(tài)信息,雙擊StatusBar1組件,在彈出的對(duì)話框中單擊【Add New】按鈕添加面板。在“Object Inspector”窗口中設(shè)置面板的Width屬性和Caption屬性,如圖9所示。 圖9 面板編輯器 (8)在“Standard”組件頁(yè)中點(diǎn)選“TPanel”組件。在窗體上添加3個(gè)TPanel組件,分別命名為“Panel3”、“Panel1”、“Panel4”,分別設(shè)置其Alig
13、n屬性為“alTop”、“alLeft”、“alClient”。 (9)在“Additional”組件頁(yè)中點(diǎn)選“TImage”組件,分別添加到Panel3組件和Panel1組件上,并在“Object Inspector”窗口中通過(guò)Picture屬性為其加載圖片。當(dāng)用戶單擊主窗體左側(cè)的按鈕時(shí),在右則將彈出相應(yīng)的功能圖片。在右側(cè)的面板中添加多個(gè)TPanel組件,并在相應(yīng)的TPanel組件上添加TImage組件,并為TImage組件加載圖片。 (10)在“Additional”組件頁(yè)中點(diǎn)選“TSpeedButton”組件,將TSpeedButton組件添加到圖片相應(yīng)的位置,設(shè)置其Flat屬性為“
14、True”;Caption屬性為空。 2.程序相關(guān)代碼 在窗體的OnKeyDown事件處理過(guò)程中設(shè)置用戶按下〈F5〉鍵時(shí)關(guān)閉窗體。代碼如下: procedure TF_zct.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin F_zct.KeyPreview:=True; //設(shè)置窗體先接受鍵盤按下事件 if key=vk_F5 then Close; end; 在窗體的OnCloseQuery事件處理過(guò)程中讓用戶確認(rèn)是否關(guān)閉窗體。代碼如下: procedure TF_z
15、ct.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if Application.MessageBox('是否退出系統(tǒng)?','提示',mb_yesno)=id_no then CanClose:=False; end; 在窗體右側(cè)按鈕的單擊事件處理過(guò)程中,設(shè)置相應(yīng)的面板在其他面板前面。代碼如下: procedure TF_zct.SpeedButton1Click(Sender: TObject); begin kumanage.BringToFront; //設(shè)置面
16、板在最前面 end; 在窗體右側(cè)的功能按鈕單擊事件處理過(guò)程中,動(dòng)態(tài)創(chuàng)建相應(yīng)的功能窗體。動(dòng)態(tài)創(chuàng)建“庫(kù)存狀況窗體”代碼如下: procedure TF_zct.SpeedButton9Click(Sender: TObject); begin Application.CreateForm(TF_kczk, F_kczk); //創(chuàng)建窗體 F_kczk.ShowModal; //顯示窗體 F_kczk.Free; //釋放窗體 end; 在窗體的OnShow事件處理過(guò)程中,添加TCheckBox組件到面板中。指定TCheckBox組
17、件的父對(duì)象并設(shè)置該組件的大小和位置。代碼如下: with statusbar1 do begin checkbox1.Parent:=statusbar1; checkbox1.Top:=4; checkbox1.Height:=Height-4; checkbox1.Width:=75; checkbox1.Left:=Panels[0].Width+Panels[1].Width+Panels[2].Width+10; checkbox1.Visible:=true; end; 4.2 基礎(chǔ)窗體創(chuàng)建 創(chuàng)建基礎(chǔ)窗
18、體主要為了提高開(kāi)發(fā)速度和代碼的利用率,從基礎(chǔ)窗體繼承的子窗體具有基礎(chǔ)窗體的全部功能?;A(chǔ)窗體如圖10所示。 圖10 基礎(chǔ)窗體 1.基礎(chǔ)窗體設(shè)計(jì)步驟 添加一個(gè)新窗體,命名為“F_base”,設(shè)置其BorderStyle屬性為“bsDialog”;KeyPreview屬性為“True”。 2.程序相關(guān)代碼 在窗體的OnKeyPress事件處理過(guò)程中設(shè)置〈Enter〉鍵代替〈Tab〉鍵。代碼如下: procedure TF_base.FormKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then
19、 perform(WM_NEXTDLGCTL,0,0); end; 4.3 數(shù)據(jù)模塊設(shè)計(jì) 數(shù)據(jù)模塊窗體主要功能是統(tǒng)一管理數(shù)據(jù)組件。數(shù)據(jù)模塊如圖11所示。 圖11 數(shù)據(jù)模塊 1.?dāng)?shù)據(jù)模塊創(chuàng)建 (1)在Delphi中選擇“File”/“New”/“Data Module”菜單項(xiàng),新建一個(gè)數(shù)據(jù)模塊,命名為“F_dm”。 (2)在“ADO”組件頁(yè)中點(diǎn)選“TADOConnection”組件,添加到窗體上,命名為“ADOConnection1”。TADOConnection組件用于連接數(shù)據(jù)庫(kù),其他數(shù)據(jù)庫(kù)組件通過(guò)它連接數(shù)據(jù)庫(kù)。 (3)點(diǎn)選ADOConnection1組件,在“Obj
20、ect Inspector”窗口中,單擊ConnectionString屬性右側(cè)的【…】按鈕,彈出對(duì)話框,如圖12所示。 圖12 設(shè)置連接字符串 (4)單擊【Build】按鈕,在彈出的對(duì)話框中 “提供程序”選項(xiàng)卡中選擇希望連接的數(shù)據(jù)所需的驅(qū)動(dòng)程序,如圖13所示。 圖13 選擇驅(qū)動(dòng)程序 (5)選擇“連接”選項(xiàng)卡,設(shè)置數(shù)據(jù)庫(kù)連接相關(guān)設(shè)置,如圖14所示。 圖14 數(shù)據(jù)庫(kù)連接設(shè)置 (6)單擊【測(cè)試連接】按鈕,如果連接成功,則提示成功,單擊【確定】按鈕完成數(shù)據(jù)庫(kù)的連接。 (7)在窗體上添加TADOQuery組件和TADOCommand組件,設(shè)置它們的Connection屬
21、性為“ADOConnection1”。 4.4 庫(kù)存商品模塊設(shè)計(jì) 庫(kù)存商品模塊主要實(shí)現(xiàn)瀏覽、添加、修改、刪除、查詢、打印商品信息等功能。庫(kù)存商品模塊運(yùn)行結(jié)果如圖15所示。 圖15 庫(kù)存商品模塊運(yùn)行的結(jié)果 1.窗體設(shè)計(jì)步驟 (1)選擇“File”/“New”/“Other”菜單項(xiàng),打開(kāi)“New Items”對(duì)話框,選擇“ima”選項(xiàng)卡,點(diǎn)選“F_base”選項(xiàng),以繼承方式使用該窗體。單擊【OK】按鈕添加一個(gè)新窗體,命名為“F_kcsp”,設(shè)置Caption屬性為“庫(kù)存商品”。 (2)在“Win32”組件頁(yè)中點(diǎn)選“TToolBar”組件,添加到窗體上。在該組件上添加TSpeed
22、Button組件,在“Object Inspector”窗口中通過(guò)Caption屬性為其設(shè)置相應(yīng)的文本,通過(guò)Glyph屬性為其指定圖標(biāo)。右鍵單擊TToolBar組件,在彈出的菜單中選擇“New Button”菜單項(xiàng),并設(shè)置其Style屬性為“tbsDivider”。 (3)在窗體上添加TPanel組件,命名為“Panel1”,設(shè)置Align屬性為“alBottom”;Visable屬性為“False”。在TPanel組件上添加TGroupBox組件,設(shè)置其Caption屬性為“查詢條件”。在“Standard”組件頁(yè)中找到TLabel組件、TEdit組件和TComboBox組件,添加到TGr
23、oupBox組件上。點(diǎn)選TComboBox組件,在“Object Inspector”窗口中,單擊Items屬性,在彈出的對(duì)話框中添加項(xiàng)目,如圖16所示。 圖16 添加項(xiàng)目 (4)在“ADO”組件頁(yè)中點(diǎn)選“TADOQuery”組件,添加到窗體上,命名為“ADOQuery1”。在“Data Access”組件頁(yè)中點(diǎn)選“TDataSource”組件,添加到窗體上,命名為“DataSource1”。設(shè)置ADOQuery1組件的Connection屬性為“F_dm.ADOConnection1”;設(shè)置DataSource1組件的DataSet屬性為“ADOQuery1”。 (5)在“Dat
24、a Controls”組件頁(yè)中點(diǎn)選“TDBGrid”組件,添加到窗體上,命名為“DBGrid1”,設(shè)置其Align屬性為“alClient”;DataSource屬性為“DataSource1”,雙擊DBGrid1組件,在彈出的列編輯器中設(shè)置字段標(biāo)題,如圖17所示。 圖17 為TDBGrid組件設(shè)置列標(biāo)題 (6)在“Rave”組件頁(yè)中點(diǎn)選“TRvDataSetConnection”組件、“TRvProject”組件,添加到窗體上,分別命名為“RvDataSetConnection1”、“RvProject1”,設(shè)置RvDataSetConnection1組件的DataSet屬性為
25、“ADOQuery1”。設(shè)置RvProject1組件的ProjectFile屬性為制作的報(bào)表文件。 2.程序相關(guān)代碼 在窗體的OnShow事件處理過(guò)程中打開(kāi)庫(kù)存商品表。代碼如下: procedure TF_kcsp.FormShow(Sender: TObject); begin inherited; //由于窗體是繼承自基窗體該代碼自動(dòng)生成。意為調(diào)用父類的同名方法。 change:=False; with adoquery1 do begin Close; SQL.Clear; SQL.Add('Select * fro
26、m tb_stock order by tradecode asc'); //排序 Open; end; end; 在【添加】按鈕的單擊事件處理過(guò)程中動(dòng)態(tài)創(chuàng)建添加庫(kù)存商品基本信息窗體。代碼如下: procedure TF_kcsp.SpeedButton4Click(Sender: TObject); begin inherited; //調(diào)用父類的同名方法 Application.CreateForm(TF_sbjbcx, F_sbjbcx); //創(chuàng)建窗體 F_sbjbcx.ShowModal;
27、 //顯示窗體 F_sbjbcx.Free; //釋放窗體 end; 在【刪除】按鈕的單擊事件處理過(guò)程中當(dāng)用戶確認(rèn)刪除后刪除數(shù)據(jù)。代碼如下: procedure TF_kcsp.SpeedButton2Click(Sender: TObject); begin inherited; //調(diào)用父類的同名方法 try if Application.MessageBox('是否刪除當(dāng)前記錄?','提示',mb_yesno)=id_yes then Adoquery1.Dele
28、te; except Application.MessageBox('不能刪除','提示',mb_yesno); end; end; 在【查詢】按鈕的單擊事件處理過(guò)程中動(dòng)態(tài)設(shè)置查詢條件。代碼如下: procedure TF_kcsp.SpeedButton1Click(Sender: TObject); var searchwhat:string; begin inherited; //調(diào)用父類的同名方法 Panel1.Visible:=not(Panel1.Visible); if Panel1.Visible=False the
29、n begin searchwhat:=''; case combobox1.ItemIndex of //設(shè)置要查找的字段 0: searchwhat:='tradecode'; 1: searchwhat:='fullnamed'; 2: searchwhat:='name'; 3: searchwhat:='shortcode'; end; try with ADoquery1 do begin Close; S
30、QL.Clear; SQL.Add('select * from tb_stock '); //寫SQL語(yǔ)句 SQL.Add('where '+''+searchwhat+''+' like :a order by tradecode'); parameters.ParamByName('a').Value:='%'+Trim(Edit1.Text)+'%'; open; end; if Application.MessageBox('是否刷新表?','提示',mb_yesno)=I
31、d_yes then with ADoquery1 do begin Close; SQL.Clear; SQL.Add('select * from tb_stock order by tradecode'); //刷新 open; end; except Application.MessageBox('請(qǐng)正確輸入條件','提示',mb_ok); end; end; end; 在【打印】按鈕的單擊事件處理
32、過(guò)程中指定報(bào)表文件、預(yù)覽報(bào)表。代碼如下: procedure TF_kcsp.SpeedButton6Click(Sender: TObject); begin inherited; //調(diào)用父類的同名方法 //指定報(bào)表文件 Rvproject1.ProjectFile:=ExtractFilePath(Application.ExeName)+'stockprint.rav'; RvProject1.Execute; //預(yù)覽報(bào)表 end; 4.5 商品基本信息模塊設(shè)計(jì) 商品基本信息模塊主要功能是錄入商品基本信息,便于其他窗體使用,在該模塊
33、中可以設(shè)置商品的報(bào)警上下限。商品基本信息模塊運(yùn)行結(jié)果如圖18所示。 圖18 商品基本信息模塊運(yùn)行的結(jié)果 1.窗體設(shè)計(jì)步驟 (1)從基礎(chǔ)窗體繼承一個(gè)窗體,命名為“F_sbjbcx”,設(shè)置其Caption屬性為“商品基本信息”。 (2)在“Additional”組件頁(yè)中點(diǎn)選“TBevel”組件,為每一類數(shù)據(jù)添加邊框。 (3)在“Additional”組件頁(yè)中點(diǎn)選“TGroupBox”組件,添加到窗體上,命名為“GroupBox1”,設(shè)置其Caption屬性為“輸入報(bào)警值-----請(qǐng)輸入大于0的數(shù) 0為不報(bào)警”。在GroupBox1組件上添加2個(gè)TLabel組件和2個(gè)TEdit組
34、件。分別設(shè)置TLabel組件的Caption屬性為“商品報(bào)警上限:”、“商品報(bào)警下限:”。 (4)在窗體上添加TLabel組件和TEdit組件,在“Additional”組件頁(yè)中點(diǎn)選“TBitBtn”組件,添加到窗體上,分別命名為“BitBtn1”、“BitBtn2”,設(shè)置BitBtn1組件的Caption屬性為“保存”,通過(guò)Glyph屬性為其指定圖標(biāo)。設(shè)置BitBtn2組件的Caption屬性為“退出”,通過(guò)Glyph屬性為其指定圖標(biāo)。 2.程序相關(guān)代碼 在窗體的OnShow事件處理過(guò)程中如果為修改,將要修改的記錄顯示在窗體的編輯框中。代碼如下: procedure TF_sbjbc
35、x.FormShow(Sender: TObject); begin inherited; //調(diào)用父類的同名方法 try if F_kcsp.change=True then //判斷是否為修改 with F_kcsp.ADOQuery1 do begin Edit1.Text:=fieldbyname('fullnamed').AsString; Edit2.Text:=fieldbyname('tradecode').AsString; Edit3.Text:=field
36、byname('name').AsString; Edit4.Text:=fieldbyname('type').AsString; Edit5.Text:=fieldbyname('standard').AsString; Edit6.Text:=fieldbyname('unit').AsString; Edit7.Text:=fieldbyname('produce').AsString; Edit8.Text:=fieldbyname('provideinf').AsString;
37、 Edit9.Text:=fieldbyname('memo').AsString; Edit10.Text:=inttostr(fieldbyname('upperlimit').AsInteger); Edit11.Text:=inttostr(fieldbyname('lowerlimit').AsInteger); end else begin F_kcsp.getspbh(sender); //如果為添加操作調(diào)用過(guò)程getspbh得到編號(hào) Edit2.Text:=F_kcsp.sp
38、bh; end; except end; end; 調(diào)用getspbh過(guò)程得到商品編號(hào)。getspbh過(guò)程完整代碼如下: procedure TF_kcsp.getspbh(sender:Tobject); //得到商品編號(hào) begin adoquery1.Last; if adoquery1.RecordCount=0 then spbh:='T'+formatfloat('00000',1) //格式化編號(hào) else spbh:='T'+Formatfloat('00000',strto
39、int(copy(adoquery1.Fields[0].AsString,2,5))+1); end; 4.6 進(jìn)貨單錄入模塊設(shè)計(jì) 進(jìn)貨單錄入窗體主要功能是錄入進(jìn)貨的相關(guān)信息,在該模塊中支持多行錄入,可以調(diào)用其他信息提示窗體。進(jìn)貨單錄入模塊運(yùn)行結(jié)果如圖19所示。 圖19 進(jìn)貨單錄入模塊運(yùn)行的結(jié)果 1.窗體設(shè)計(jì)步驟 (1)從基礎(chǔ)窗體繼承一個(gè)窗體,命名為“F_jhd”,設(shè)置其Caption屬性為“進(jìn)貨單錄入”。 (2)在窗體上添加TLabel組件、TEdit組件、TDateTimePicker組件,用于輸入信息。在“Additional”組件頁(yè)中點(diǎn)選“TStringGrid
40、”組件,添加到窗體上,命名為“StringGrid1”。設(shè)置StringGrid1組件的RowCount屬性為“10”;ColCount屬性為“10”。 (3)在窗體上添加TSpeedButton組件,通過(guò)Glyph屬性為其指定圖標(biāo)。添加TBitBtn組件,用于完成“保存”、“取消”功能。 (4)在窗體上添加TPanel組件,命名為“Panel1”,設(shè)置其Caption屬性為空。用于顯示統(tǒng)計(jì)應(yīng)付金額。 (5)在窗體上添加TADOQuery組件,命名為“ADOQuery1”,設(shè)置其Connection屬性為“F_dm.ADOConnection1”。 2.程序相關(guān)代碼 在窗體的OnSh
41、ow事件處理過(guò)程中初始化相關(guān)信息。代碼如下: procedure TF_jhd.FormShow(Sender: TObject); begin inherited; F_zct.wf:=1; //窗體標(biāo)記 DateTimePicker1.Date:=now(); //初始化為當(dāng)天日期 with F_jhd.StringGrid1 do //設(shè)置列標(biāo)題 begin Cells[1,0]:='商品編號(hào)'; Cells[2,0]:='商品全稱'; Cells[3,0]:='商品型號(hào)'; Cel
42、ls[4,0]:='商品規(guī)格'; Cells[5,0]:='單位'; Cells[6,0]:='產(chǎn)地'; Cells[7,0]:='數(shù)量'; Cells[8,0]:='進(jìn)貨價(jià)'; Cells[9,0]:='金額'; end; with adoquery1 do begin close; SQl.Clear; SQl.Add('select * from tb_warehouse_main'); Open; end; F_jhd.getspbh(sender); //調(diào)用
43、過(guò)程getspbh取得編號(hào) Edit2.Text:=spbh; end; 雙擊TStringGrid組件左側(cè)的按鈕動(dòng)態(tài)創(chuàng)建信息提示窗體。代碼如下: procedure TF_jhd.SpeedButton3Click(Sender: TObject); begin inherited; //調(diào)用父類的同名方法 Application.CreateForm(TF_kcspxz, F_kcspxz); F_kcspxz.ShowModal; F_kcspxz.Free; end; 在彈出的信息提示窗體的【確定】按鈕單擊事件處理過(guò)程中將數(shù)據(jù)添加到
44、TStringGrid組件中。代碼如下: if F_zct.wf=1 then //往進(jìn)貨單錄入窗體添加數(shù)據(jù) begin for xh:=1 to F_jhd.StringGrid1.RowCount do begin if Trim(F_jhd.StringGrid1.Cells[1,xh])='' then //查找第幾行為空 begin grow:=xh; break; end; end; for xh:=0 to adoquery1.FieldCount
45、-12 do //將數(shù)據(jù)庫(kù)的數(shù)據(jù)讀出 begin gcol:=xh; if xh>=2 then gcol:=gcol+1; F_jhd.StringGrid1.Cells[xh+1,grow]:=adoquery1.Fields[gcol].Value; //將數(shù)據(jù)添加到單元格中 end; F_jhd.StringGrid1.Cells[8,grow]:=adoquery1.Fields[8].Value; F_jhd.StringGrid1.SetFocus; F_jhd.StringGrid1
46、.Col:=7; F_jhd.StringGrid1.Row:=grow; end; 在【保存】按鈕的單擊事件處理過(guò)程中,首先啟動(dòng)事務(wù),然后對(duì)相關(guān)表進(jìn)行操作,如果成功,提交事務(wù),否則回滾事務(wù)。代碼如下: procedure TF_jhd.BitBtn1Click(Sender: TObject); var gcol,grow,xhjc:integer; ave:string; //age加權(quán)平均價(jià) begin inherited; if (Trim(Edit3.Text)='') or (Trim(Edit4.Text)='') or
47、 (Trim(Edit6.Text)='') or (stringgrid1.Cells[9,1]='') then begin Application.MessageBox('請(qǐng)輸入完整信息','提示',mb_ok); Exit; end; for xhjc:=1 to strdbrows do begin if (stringgrid1.Cells[7,xhjc]='') or (strtofloat(stringgrid1.Cells[8,xhjc])<=0) then begin Applicatio
48、n.MessageBox('請(qǐng)輸入商品數(shù)量或金額','提示',mb_ok); Exit; end; end; try F_dm.ADOConnection1.BeginTrans; //啟動(dòng)事務(wù) with Adoquery1 do //將信息保存到進(jìn)貨主表 begin Close; SQl.Clear; SQl.Add('select * from tb_warehouse_main'); open; insert; FieldByNa
49、me('billdate').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd', datetimepicker1.Date)); FieldByName('billcode').AsString:=Trim(Edit2.Text); FieldByName('units').AsString:=Trim(Edit3.Text); FieldByName('handle').AsString:=Trim(Edit4.Text); FieldByName('summary').AsStrin
50、g:=Trim(Edit5.Text); FieldByName('fullpayment').AsFloat:=strtofloat(panel1.Caption); FieldByName('payment').AsFloat:=strtofloat(format('%10.4f',[strtofloat(Edit6.Text)])); ……詳細(xì)代碼參見(jiàn)光盤 post; end; end; F_dm.ADOConnection1.CommitTrans; //提交事務(wù) Applicati
51、on.MessageBox('保存成功','提示',mb_ok); except F_dm.ADOConnection1.RollbackTrans; //回滾事務(wù) Application.MessageBox('保存不成功','提示',mb_ok); end; with Adoquery1 do begin Close; SQl.Clear; SQl.Add('select * from tb_warehouse_main'); Open; end; bitbtn2.OnClick
52、(sender); //調(diào)用取消按鈕清空記錄 F_jhd.getspbh(sender); //得到下一單據(jù)編號(hào) Edit2.Text:=spbh; //顯示編號(hào)值 end; 附錄A 參考文獻(xiàn) 1.Visual Basic精彩編程200例 機(jī)械工業(yè)出版社 賽奎春、高春艷等 2003年1月 2.Visual Basic數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 劉志銘、高春艷等 2003年8月 3.Visual FoxPro數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 王晶瑩、王國(guó)輝等 2003年9月 4.Power Builder數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例解析
53、 機(jī)械工業(yè)出版社 華傳銘、張振坤等 2003年9月 5.Delphi數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 賽奎春、鄭驍鵬等 2004年2月 6.PowerBuilder 精彩編程200例 機(jī)械工業(yè)出版社 張振坤、李文立等 2004年9月 7.Visual FoxPro 精彩編程200例 機(jī)械工業(yè)出版社 王國(guó)輝、董韶華等 2004年9月 8.ASP數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 李嚴(yán)、于亞芳、王國(guó)輝 2004年12月 9.Delphi工程應(yīng)用與項(xiàng)目實(shí)踐 機(jī)械工業(yè)出版社 宋坤、趙智勇等 2005年1月 10.Visual Basic工程應(yīng)用與項(xiàng)目實(shí)踐 機(jī)械工業(yè)出版社 高春艷、李
54、俊民等 2005年1月 11.Visual C++工程應(yīng)用與項(xiàng)目實(shí)踐 機(jī)械工業(yè)出版社 張雨、阮偉良等 5005年1月 12.JSP工程應(yīng)用與項(xiàng)目實(shí)踐 機(jī)械工業(yè)出版社 陳威、白偉明、李楠 2005年2月 13.ASP工程應(yīng)用與項(xiàng)目實(shí)踐 機(jī)械工業(yè)出版社 王國(guó)輝、牛強(qiáng)、李南南 2005年4月 14.Visual Basic 信息系統(tǒng)開(kāi)發(fā)實(shí)例精選 機(jī)械工業(yè)出版社 高春艷、李俊民、張耀庭等 2005年7月 15.ASP 信息系統(tǒng)開(kāi)發(fā)實(shí)例精選 機(jī)械工業(yè)出版社 王國(guó)輝、牛強(qiáng)、李南南等 2005年7月 16.Delphi 信息系統(tǒng)開(kāi)發(fā)實(shí)例精選 機(jī)械工業(yè)出版社 宋坤、趙智勇、劉強(qiáng)等 20
55、05年7月 17.Visual foxpro數(shù)據(jù)庫(kù)開(kāi)發(fā)關(guān)鍵技術(shù)與實(shí)例應(yīng)用 人民郵電出版社 周桓、張雨、王國(guó)輝 2004年5月 18.PoweBuilder數(shù)據(jù)庫(kù)開(kāi)發(fā)關(guān)鍵技術(shù)與實(shí)例應(yīng)用 人民郵電出版社 劉志銘 張振坤 馮文萃 2004年5月 19.Delphi數(shù)據(jù)庫(kù)開(kāi)發(fā)關(guān)鍵技術(shù)與實(shí)例應(yīng)用 人民郵電出版社 賽奎春 陳紫鴻 宋昆 2004年5月 20.Visual basic數(shù)據(jù)庫(kù)開(kāi)發(fā)關(guān)鍵技術(shù)與實(shí)例應(yīng)用 人民郵電出版社 高春艷、李艷 2004年5月 21.Visual C++ 管理信息系統(tǒng)完整項(xiàng)目實(shí)例剖析 人民郵電出版社 明日科技 2005年7月 22.Visu
56、al Basic 管理信息系統(tǒng)完整項(xiàng)目實(shí)例剖析 人民郵電出版社 明日科技 2005年7月 23.PowerBuilder 管理信息系統(tǒng)完整項(xiàng)目實(shí)例剖析 人民郵電出版社 明日科技 2005年7月 24.Visual FoxPro管理信息系統(tǒng)完整項(xiàng)目實(shí)例剖析 人民郵電出版社 明日科技 2005年7月 25.SQL Server數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 宋昆、李嚴(yán)等 2006年1月 26.Access數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 李俊民、高春燕等 2006年1月 附錄B 數(shù)據(jù)表 (1)職員信息表(tb_employ) 職員信息表用來(lái)保存
57、職員信息。職員信息表的結(jié)構(gòu)如表B.1所示。 表B.1 職員信息表結(jié)構(gòu) 字段名稱 字段類型 字段大小 主鍵否 功能描述 employecode Varchar 6 職員編號(hào) fullname Varchar 20 是 職員全稱 name Varchar 20 職員簡(jiǎn)稱 sex Varchar 2 性別 department Varchar 20 所在部門 tel Varchar 20 聯(lián)系電話 memo Varchar 40 備注 shortcod
58、e Varchar 10 拼音簡(jiǎn)碼 (2)進(jìn)貨主表(tb_warehouse_main) 進(jìn)貨主表用來(lái)保存進(jìn)貨中主要和相同的信息。進(jìn)貨主表的結(jié)構(gòu)如表B.2所示。 表B.2 進(jìn)貨主表結(jié)構(gòu) 字段名稱 字段類型 字段大小 主鍵否 功能描述 Billdate datetime 8 錄單日期 Billcode varchar 20 是 單據(jù)編號(hào) Units varchar 20 供貨單位 Handle varchar 20 經(jīng)手人 Summary varchar 10
59、0 摘要 Fullpayment float 8 應(yīng)付金額 Payment float 8 實(shí)付金額 (3)進(jìn)貨明細(xì)表(tb_warehouse_detailed) 進(jìn)貨明細(xì)表用來(lái)保存進(jìn)貨中商品的詳細(xì)信息。進(jìn)貨明細(xì)表結(jié)構(gòu)如表B.3所示。 表B.3 進(jìn)貨明細(xì)表結(jié)構(gòu) 字段名稱 字段類型 字段大小 主鍵否 功能描述 billcode Varchar 20 單據(jù)編號(hào) tradecode Varchar 20 商品編號(hào) fullname Varchar 20 商品全
60、稱 type Varchar 10 商品型號(hào) standard Varchar 10 商品規(guī)格 unit Char 4 單位 produce Varchar 20 產(chǎn)地 qty Float 8 數(shù)量 price Float 8 進(jìn)價(jià) tsum Float 8 金額 billdate Datetime 8 錄單日期 (4)用戶權(quán)限表(tb_power) 用戶權(quán)限表用來(lái)保存用戶權(quán)限設(shè)置信息。用戶權(quán)限表結(jié)構(gòu)如表B.4所示。 表B.4 用戶權(quán)限
61、表結(jié)構(gòu) 字段名稱 字段類型 字段大小 主鍵否 功能描述 number Varchar 20 是 用戶編號(hào) users Varchar 20 用戶名稱 password Varchar 20 用戶密碼 stock Bit 1 進(jìn)貨管理 vendition Bit 1 銷售管理 checked Bit 1 庫(kù)存管理 money Bit 1 錢流管理 system Bit 1 系統(tǒng)維護(hù) base Bit 1 基本信息 (5)費(fèi)用表(tb_cf) 費(fèi)用表用于記錄費(fèi)用信息。費(fèi)用表結(jié)構(gòu)如
62、表B.5所示。 表B.5 費(fèi)用表結(jié)構(gòu) 字段名稱 字段類型 字段大小 主鍵否 功能描述 billdate datetime 8 錄單日期 billcode varchar 20 單據(jù)編號(hào) units varchar 20 收款單位 number varchar 20 費(fèi)用項(xiàng)目編號(hào) name varchar 20 費(fèi)用項(xiàng)目名稱 handle varchar 20 經(jīng)手人 fullpayment varchar 20 應(yīng)付金額 payment
63、 float 8 實(shí)付金額 summary varchar 20 摘要 (6)往來(lái)賬明細(xì)表(tb_currentaccount) 往來(lái)賬明細(xì)表用于記錄往來(lái)單位的應(yīng)收、應(yīng)付賬目。往來(lái)賬明細(xì)表結(jié)構(gòu)如表B.6所示。 表B.6 往來(lái)賬明細(xì)表結(jié)構(gòu) 字段名稱 字段類型 字段大小 主鍵否 功能描述 billdate datetime 8 錄單日期 billcode varchar 20 是 單據(jù)編號(hào) units varhcar 20 往來(lái)單位 addgathering flo
64、at 8 應(yīng)收增加 reducegathering float 8 應(yīng)收減少 balance float 8 應(yīng)收余額 summary varchar 100 摘要 (7)費(fèi)用類型表(tb_freetype) 費(fèi)用類型表用于存儲(chǔ)費(fèi)用類型信息。費(fèi)用類型表表結(jié)構(gòu)如表B.7所示。 表B.7 費(fèi)用類型表 字段名稱 字段類型 字段大小 主鍵否 功能描述 subjectcode varchar 3 科目編號(hào) fullname varhcar 20 是 科目全
65、稱 name varchar 10 科目簡(jiǎn)稱 memo varhcar 40 備注 shortcode varchar 10 拼音簡(jiǎn)碼 (8)收款信息表(tb_gathering) 收款信息表用于保存收款信息。收款信息表結(jié)構(gòu)如表B.8所示。 表B.8 收款信息表結(jié)構(gòu) 字段名稱 字段類型 字段大小 主鍵否 功能描述 billdate datetime 8 錄單日期 billcode varchar 20 是 單據(jù)編號(hào) units varchar 20 付
66、款單位 gathering float 8 金額 handle varchar 20 經(jīng)手人 summary varchar 40 摘要 (9)付款信息表(tb_payment) 付款信息表用于保存付款信息。付款表結(jié)構(gòu)如表B.9所示。 表B.9 付款表結(jié)構(gòu) 字段名稱 字段類型 字段大小 主鍵否 功能描述 billdate datetime 8 錄單日期 billcode varchar 20 是 單據(jù)編號(hào) units varchar 20 收款單位 payment float 8 金額 handle varchar 20 經(jīng)手人 summary varchar 100 摘要 (10)銷售退貨明細(xì)表(tb_resell_detailed) 銷售退貨明細(xì)表用于保存銷售退貨的詳細(xì)信息。銷售退貨明細(xì)表結(jié)構(gòu)如表10所示。 表B.10 銷售退貨明
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售技巧培訓(xùn)課件:接近客戶的套路總結(jié)
- 20種成交的銷售話術(shù)和技巧
- 銷售技巧:接近客戶的8種套路
- 銷售套路總結(jié)
- 房產(chǎn)銷售中的常見(jiàn)問(wèn)題及解決方法
- 銷售技巧:值得默念的成交話術(shù)
- 銷售資料:讓人舒服的35種說(shuō)話方式
- 汽車銷售績(jī)效管理規(guī)范
- 銷售技巧培訓(xùn)課件:絕對(duì)成交的銷售話術(shù)
- 頂尖銷售技巧總結(jié)
- 銷售技巧:電話營(yíng)銷十大定律
- 銷售逼單最好的二十三種技巧
- 銷售最常遇到的10大麻煩
- 銷售資料:銷售10大黃金觀念
- 銷售資料:導(dǎo)購(gòu)常用的搭訕?lè)椒?/a>