《物資管理系統》論文范例_第1頁
《物資管理系統》論文范例_第2頁
《物資管理系統》論文范例_第3頁
《物資管理系統》論文范例_第4頁
《物資管理系統》論文范例_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、物資管理系統學 院專 業班 級學 號姓 名指導教師教師職稱年月日摘要【摘要】隨著市場經濟的高速發展,物資管理越來越重要,如何降低成本,提高工作效率是物資管理者需要解決的一個實際問題,本系統從實際出發,在分析目前物資管理中存在的問題基礎上,結合管理信息系統開發的概念,結構及系統開發的基本原理和方法開發的。系統支持多形式客戶的數據共享、提高作業效率、監控整個物資進庫、出庫流程、提供完整的物資出庫、入庫信息,并且特別關注對各環節業務的監控及例外情況的監控。【關鍵詞】 物資 物資入庫 物資出庫目錄摘要1目錄10 引言11 系統分析31.1 需求分析31.2 可行性分析32 總體設計32. 1 項目規劃

2、32. 2 功能框圖43 系統設計43.1 設計目標43.2 開發及運行環境43.3 邏輯結構設計54 主要功能模塊設計64.1 主窗體設計64.2 基礎窗體創建134.3 物資入庫管理模塊設計144.4 物資出庫管理模塊設計19附錄一 參考文獻30附錄二 數據表31附錄三 文件架構圖380 引言物資管理在企業生產經營中非常重要,物資管理的好環,直接影響著企業的經營生產和發展進步。由于物資供應渠道多、品種規格千變萬化,這就使得物資的供應和管理變得復雜和困難。如何加強企業成本意識,做好物資供應、降低庫存、加速資金周轉、加強物資使用監督和財務監督以成為企業領導愈加關注的問題。在物資管理中采用計算機

3、管理十分必要,這對于搞好物資的供、管、用三方面的工作,保障供應,合理地使用物資,提高物資管理勞動生產率,促進企業健康發展具有重要意義。采用計算機物資管理系統,具有以下優點:1、利用計算機和信息技術,可以代替人工勞動,減輕工作人員工作量和工作繁瑣程度,提高工作效益和工作質量等。2、通過對庫存的有效管理,可以節約資金占用,降低庫存,提高經濟效益。 3、通過對材料消耗的控制,降低生產成本。4.、通過對供應渠道的有效管理,加強與供應商的協作,提高市場反應能力。5.、通過全面、準確的數據,為各級領導提供有力的決策信息。1 系統分析1.1 需求分析通過調查,要求系統具有以下功能:q 有良好的人機界面,操作

4、簡單、方便。 q 支持不同級別管理人員的操作,要有較好的權限管理。q 要求支持多行錄入功能,支持鼠標、鍵盤的操作。q 為了方便用戶查詢,要求支持多條件查詢。q 編號是物資的惟一標識,要求支持編號的自動生成。q 系統具有數據備份及數據還原功能。能夠保證系統數據的安全性。q 數據計算自動完成,盡量減少人工干預。q 支持報表的打印。1.2 可行性分析物資管理系統使用delphi 7.0開發,delphi是基于窗體和面向對象的,對數據庫有強大的支持。開發數據庫簡單、高效。數據庫采用sql server 2000數據庫,以保證數據的安全和高效。2 總體設計2. 1 項目規劃物資管理系統是一個典型的數據庫

5、應用程序,由啟動窗體模塊、登錄模塊、系統主界面模塊、基礎信息模塊、物資管理模塊、信息查詢模塊、紅字沖銷模塊、系統管理模塊等組成,特規劃功能如下:q 基礎信息模塊基礎信息模塊的主要功能是對倉庫基礎信息、物資基礎信息、供應商信息、職務信息、員工信息、操作員信息進行管理。q 物資管理模塊物資管理模塊主要功能是對物資的入庫、出庫、入庫退貨、維修、報廢、報損、報溢進行管理。q 信息查詢模塊信息查詢模塊主要功能是對物資入庫、物資出庫、物資退貨、物資維修、物資報廢、物資報損、物資報溢和供應商結款進行高效的查詢。q 紅字沖銷模塊紅字沖銷模塊主要是對入庫票號、出庫票號、入庫退貨票號、維修票號、報廢票號、報損票號

6、、報溢票號和供應商結款票號進行沖銷。q 系統管理模塊系統管理模塊主要功能是系統登錄、口令修改和系統退出。2. 2 功能框圖圖1 功能框圖3 系統設計3.1 設計目標根據企業的需要和物資管理的特點,該系統在實施后,應能達到以下目標:q 支持多行輸入,自動生成編號。q 界面美觀友好、操作簡單、信息查詢靈活、方便、快捷、準確。q 強大的打印功能,讓用戶隨時了解物資庫存情況。q 提高工作效率,降低成本。q 對用戶輸入的數據進行過濾,當輸入有誤或不正確時提示用戶。q 數據保密性強,用戶對應不同的權限級別。q 系統最大限度地實現了易安裝性、易維護性和易操作性。q 系統運行穩定、安全可靠。3.2 開發及運行

7、環境系統開發平臺:delphi 7.0。數據庫管理系統軟件:sql server 2000。運行平臺:windows xp/ windows 2000。分辨率:最佳效果1024*768。3.3 邏輯結構設計本系統數據庫采用sql server 2000數據庫,系統數據庫名稱為“db_bpglxt”。數據庫db_bpglxt中包含24個表。下面分別給出數據庫概要說明和數據表的結構。1數據表概要說明數據表概要說明圖,如圖2所示。圖2 數據庫概要說明2數據表的結構由于篇幅所限,關于數據庫中的數據表請參見附錄b。4 主要功能模塊設計4.1 主窗體設計主程序窗體是程序控制的中心,操作權限、程序功能調用等

8、都要通過主程序窗體調用實現。物資管理系統主窗體將桌面導航圖窗體嵌入到主窗體中。備品管理系統主窗體運行結果如圖3所示。導航窗體主窗體圖3 主窗體運行結果1窗體設計步驟(1)運行delphi會自動創建一個窗體,設置該窗體為程序主窗體,命名為“t_main”,設置窗體的caption屬性為“備品管理系統”;windowstate屬性為“wsmaximized”;keypreview屬性為“true”。(2)在“win32”組件頁中點選“timagelist”組件,添加到窗體上,命名為“imagememu”,設置該組件的height屬性為“22”;width屬性為“22”。雙擊該組件,在彈出的對話框中

9、單擊【add】按鈕,添加圖標,如圖4所示。圖4 添加圖標(3)在“standard”組件頁中點選“tactionlist”組件,添加到窗體上,命名為“list1”。設置該組件的images屬性為“imagememu”,雙擊list1組件打開編輯器,單擊【new action】按鈕添加actions對象,并設置相應的caption屬性和name屬性,如圖5所示。 圖5 添加動作項(4)在“additional”組件頁中點選“tactionmanager”組件,添加到窗體上,命名為“actionmanage1”,雙擊該組件打開動作編輯器,選擇“toolbars”選項卡,單擊【new】按鈕,添加“t

10、actiontoolbar”對象,如圖6所示。圖6 添加tactiontoolbar對象(5)在窗體上點選actionmanager1組件,在“object inspector”窗口中,單擊actionbars屬性右側的【】按鈕,彈出對話框如圖7所示。圖7 菜單欄設置1(6)在彈出的對話框中點選“0-actionbar-actiontoobar1”,在“object inspector”窗口中,單擊items屬性右側的【】按鈕,在彈出的對話框中,單擊【add new】按鈕添加菜單項,并設置各個菜單項的caption屬性,如圖8所示。 圖8 菜單欄設置2(7)點選各菜單項,在“object in

11、spector”窗口中,單擊items右側的【】按鈕,在彈出的對話框中設置子菜單項的action屬性和caption屬性,如圖9所示。 圖9 菜單欄設置3(8)在“win32”組件頁中點選“tstatusbar”組件,添加到窗體上,命名為“statusbar1”。statusbar組件用于顯示狀態信息,雙擊statusbar1組件,在彈出的對話框中單擊【add new】按鈕添加面板。在“object inspector”窗口中設置面板的width屬性、text屬性和alignment屬性,如圖10所示。 圖10 面板編輯器(9)在“win32”組件頁中點選“tcoolbar”組件,添加到窗體上

12、,命名為“coolbar1”。在“win32”組件頁中點選“ttoolbar”組件,添加到coolbar1組件上,命名為“toolbar1”。在“additional”組件頁中點選多個“tspeedbutton”組件,添加toolbar1組件上,分別設置它們的caption屬性為“登錄”、“口令”、“庫存”、“盤點”、“職務”、“員工”、“備品”、“入庫”、“操作員”,單擊glyph屬性右側的【】按鈕為tspeedbutton組件添加圖標。點選tspeedbutton組件為其action屬性設置要執行的動作。(10)添加tpanel組件到toolbar1組件上,命名為“panel2”,設置其a

13、lign屬性為“alright”。在“win32”組件頁中點選“tanimate”組件,添加到“panel2”組件上,設置該組件align屬性為“alclient”。(11)在窗體上添加timage組件,設置該組件的align屬性為“alclient”;stretch屬性為“true”。通過設置picture屬性為該組件指定一張圖片。(12)添加tpanel組件到窗體上,設置該組件的align屬性為“alclient”;docksite屬性為“true”。桌面導航圖窗體設計步驟如下:(13)單擊【new form】按鈕添加一個新窗體,命名為“t_interfase”。在窗體上添加tpanel組

14、件,命名為“panel1”。添加timage組件到panel1組件上,命名為“image1”。在窗體上添加tpanel組件,命名為“panel2”。屬性設置如表1所示。表1 主要組件對象的屬性列表對象名對象類型屬性值t_interfasetformborderstylebstoolwindowcaption桌面導航圖dragmodedmautomaticdragkinddkdockpanel1tpanelalignalleftimage1timagealignalclientpanel2tpanelalignalclient(14)添加tpanel組件到panel1組件上,命名為“panel3

15、”。設置該組件的align屬性為“alclient”;caption屬性為空。(15)添加timage組件到panel2組件上,設置該組件的align屬性為“alclient”;stretch屬性為“true”。(16)在“additional”組件頁中點選“tsplitter”組件,添加到窗體上,命名為“splitter1”。拖動該組件到panel1組件和panel2組件中間位置。(17)添加5個tspeedbutton組件到panel3組件上,分別設置其caption屬性為“基礎信息”、“備品管理”、“信息查詢”、“紅字沖銷”、“系統管理”。(20)添加timagelist組件到窗體上,設

16、置該組件的height屬性為“60”;width屬性為“60”。雙擊該組件在打開的對話框中添加圖標。2程序相關代碼在桌面導航圖窗體【基礎信息】按鈕的單擊事件處理過程中,動態添加按鈕并設置相關屬性。代碼如下:procedure tt_interfase.basicinfoclick(sender: tobject);var itemcount: integer; temptag,i: integer; button: tspeedbutton; rowid: integer; imageindex: integer; columnid: integer; /由按鈕索引計算按鈕列begin tem

17、ptag := tcomponent(sender).tag; case temptag of 1: imageindex := 0; 2: imageindex := 6; 3: imageindex := 15; 4: imageindex := 23; 0: imageindex := 31; end; freepanelbutton; /釋放panel2中的功能按鈕 itemcount := t_main.manager.actionbars0.itemstemptag.items.count; /對應菜單的功能項數 for i := 1 to itemcount do begin b

18、utton := tspeedbutton.create(panel2); with button do begin flat := true; caption := t_main.manager.actionbars0.itemstemptag.itemsi-1.caption; parent := panel2; hint := caption; showhint := true; layout := blglyphtop; if i 0 then begin if i mod maxcountperrow = 0 then rowid := i div maxcountperrow el

19、se rowid := i div maxcountperrow+1; end else begin rowid := 1; end; .計算行號. columnid := i mod maxcountperrow; /計算列號 if columnid = 0 then columnid := maxcountperrow; if columnid = 1 then left := buttonleft else begin left := buttonleft+ (columnid-1)*(buttonwidth+horinterval); end; top := topmargin+(ro

20、wid-1)*(buttonheight+verinterval); (*.設置按鈕位置.*) end; end;end;定義過程freepanelbutton釋放panel2中的功能按鈕。代碼如下:procedure tt_interfase.freepanelbutton;var i: integer;begin for i := panel2.controlcount-1 downto 0 do if panel2.controlsiis tspeedbutton then begin tspeedbutton(panel2.controlsi).free; end;end;在主窗體的o

21、ncreate事件中,設置動作提示信息,在狀態欄中添加tcheckbox組件。procedure tt_main.formcreate(sender: tobject);var i: integer; checkpos: integer; /檢查框出現的位置begin /設置動作項提示信息 for i := 0 to list1.actioncount-1 do taction(list1.actionsi).hint := taction(list1.actionsi).caption; application.onhint := showhint; checkpos := 0; /在狀態欄

22、中創建復選框,并設置復選框的單擊事件 with showinter do begin showinter := tcheckbox.create(self); width := checkwidth; height := checkheight; parent := statusbar1; caption := 顯示界面; checked := true; onclick := intercontrolexecute; for i := 0 to sta_showinterfase-1 do checkpos := checkpos+ statusbar1.panelsi.width; lef

23、t := checkpos+ (statusbar1.panelssta_showinterfase.width-width) div 2); top := (statusbar1.height-height) div 2+1; show; end;end;在主窗體的onshow事件處理過程中,將初始化窗口,如果不存在配置文件則彈出登錄服務器窗口。顯示登錄窗口。procedure tt_main.formshow(sender: tobject);var ini: tinifile; server,database,user,password: string;begin /設置窗體界面,即只顯

24、示窗體背景圖片效果還是在窗體中嵌入一個子窗體 intercontrolexecute(sender); /調用初始化窗口 application.createform(tf_ini,f_ini); f_ini.showmodal; f_ini.free; ini := nil; /配置信息是否存在 if not fileexists(extractfilepath(application.exename)+login.ini) then /判斷文件是否存在 begin /調用登錄服務器窗口,登錄服務器并記錄登錄信息 application.createform(tf_loginserver,f

25、_loginserver); f_loginserver.showmodal; f_loginserver.free; end else /讀取配置信息 begin try ini := tinifile.create(extractfilepath(application.exename)+login.ini); server := ini.readstring(配置信息,服務器,); database := ini.readstring(配置信息,數據庫,); user := ini.readstring(配置信息,用戶名,); password := ini.readstring(配置信

26、息,密碼,); try t_data.connection1.connectionstring := provider=sqloledb.1;password=+trim(password)+;persist security info=true;user id=+trim(user)+;initial catalog=+trim(database)+;data source=+trim(server); t_data.connection1.open; except if application.messagebox(數據庫連接失敗,是否重新連接數據庫?,提示,mb_yesno) = id_

27、yes then begin application.createform(tf_loginserver,f_loginserver); f_loginserver.showmodal; f_loginserver.free; end; end; finally ini.free; end; end; login.execute; statusbar1.panelssta_date.text := formatdatetime(yyyy-mm-dd,now); /加載avi動畫 if fileexists(extractfilepath(application.exename)+avistor

28、e.avi) then begin animate.filename := extractfilepath(application.exename)+avistore.avi; animate.active := true; end;end;4.2 基礎窗體創建創建基礎窗體主要是提高開發速度和代碼的利用率,從基礎窗體繼承的子窗體具有基礎窗體的全部功能。基礎窗體如圖11所示。圖11 基礎窗體1窗體設計步驟添加一個新窗體,命名為“f_frame”,設置其borderstyle屬性為“bsdialog”;keypreview屬性為“true”。2程序相關代碼在窗體的onkeydown事件處理過程中設

29、置,如果用戶按下esc鍵關閉窗體。代碼如下:procedure tf_frame.formkeydown(sender: tobject; var key: word; /按esc鍵關閉窗體 shift: tshiftstate);begin if key = vk_escape then close;end;定義過程“findnext(direct: boolean);”,使用enrter鍵代替tab鍵。代碼如下:procedure tf_frame.findnext(direct: boolean);begin findnextcontrol(activecontrol,direct,fa

30、lse,false).setfocus;end;4.3 物資入庫管理模塊設計物資入庫管理模塊主要功能是記錄物資入庫的相關信息,使用tstringgrid組件實現多行錄入。物資入庫管理模塊運行結果如圖12所示。圖12 物資入庫管理模塊運行的結果1窗體設計步驟(1)選擇“file”/“new”/“other”菜單項,打開“new items”對話框,選擇“bpglxt”選項卡,點選“f_frame”,以繼承方式使用該窗體。單擊【ok】按鈕添加一個新窗體,命名窗體為“f_instore”,設置caption屬性為“物資入庫管理”。(2)在窗體上添加tlabel組件,命名為“label1”。設置該組件

31、的caption屬性為“物資入庫管理”,設置label1組件的font屬性如圖13所示。圖13 font屬性設置(3)在窗體上添加tpanel組件,命名為“panel2”。設置該組件的align屬性為“albottom”;caption屬性為空。(4)添加4個tlabel組件到panel2組件上,分別設置它們的caption屬性為“供應商名稱”、“負責人”、“操作員”、“時間”。添加4個tedit組件到panel2組件上,分別命名為“providername”,“principal”,“operator”。添加tdatetimepicker組件到panel2組件上,命名為“date”。(5)在

32、窗體上添加tpanel組件,命名為“panel1”。設置該組件的align屬性為“albottom”,在panel1組件上添加4個tlabel組件和4個tedit組件。(6)在窗體上添加tpanel組件,命名為“panel3”。在該組件上添加3個tbitbtn組件,分別命名為“save”、“cancel”、“quit”。(7)添加tstringgrid組件到窗體上,命名為“reginfo”。設置該組件的align屬性為“albottom”;colcount屬性為“9”;rowcount屬性為“2”;ctrl3d屬性為“false”。(8)在窗體上添加tdatasource組件,命名為“regs

33、ource”;添加tlistbox組件,命名為“list”;添加tcombobox組件,命名為“comstorage”;添加tdbgrid組件,命名為“grid”。設置grid組件的datasource屬性為“regsource”。設計期物資入庫窗體如圖14所示。圖14 設計期物資入庫管理模塊2程序相關代碼在窗體的onshow事件處理過程中設置tstringgrid組件相關屬性,將倉庫信息添加到tcombobox組件中。代碼如下:procedure tf_instore.formshow(sender: tobject);begin inherited; with reginfo do beg

34、in /設置字段名稱 cellsbarcode,0:=條形碼; cellsstorename,0:= 物資名稱; cellsbasicunit,0:=基本單位; cellsstockunit,0:= 采購單位; cellsconvertions,0:= 換算關系; cellsunitprice,0:= 單價; cellsnum,0:=數量; cellsmoney,0:= 金額; cellsstoragename,0:=倉庫名稱; end; with t_data.query1 do /查詢倉庫名稱,將其添加到組合框中 begin close; sql.clear; sql.add(select

35、 storagename from tb_storageinfo); open; end; if t_data.query1.recordcount0 then begin while not t_data.query1.eof do begin comstorage.items.add(trim(t_data.query1.fieldbyname(storagename).asstring); t_data.query1.next; end; comstorage.itemindex := 0; end; cancel.click;end;在tstringgrid組件的onkeypress事

36、件處理過程中限制輸入的內容。代碼如下:procedure tf_instore.reginfokeypress(sender: tobject; var key: char);begin inherited; if (col = unitprice)or(col = num)or(col = convertions) then begin if not (key in 0.9,.,#8) then /只允許輸入數字鍵和退格鍵 key := #0 /輸入空字符 end;end;keypress鍵盤事件該事件是當用戶按下ascii字符的鍵盤時發生的。在該事件下的key參數是一個數字,代表字符的as

37、cii值,如13(回車鍵)或27(esc鍵)。示例代碼如下:if key=#13 then edit2.setfocus /回車后,焦點跳轉到edit2組件。在tstringgrid組件的onselectcell事件處理過程中設置單元是否可編輯。代碼如下:procedure tf_instore.reginfoselectcell(sender: tobject; acol, arow: integer; var canselect: boolean);begin inherited; row := arow; col := acol; /當物資名稱為空時可以編輯條形碼,當條形碼為空時可以編輯

38、物資名稱,/當條形碼不為空時可以編輯單價、數量 if (col = barcode)and(trim(reginfo.cellsstorename,row)=)or(col = storename)and(trim(reginfo.cellsbarcode,row)=)or (col = unitprice)and(trim(reginfo.cellsbarcode,row)or(col = num)and(trim(reginfo.cellsbarcode,row)or (col = convertions)and(trim(reginfo.cellsbarcode,row)then reg

39、info.options := reginfo.options + goediting else reginfo.options := reginfo.options - goediting;end;在tstringgrid組件的onsetedittext事件處理過程中,設置tdbgrid組件出現的位置。代碼如下:procedure tf_instore.reginfosetedittext(sender: tobject; acol, arow: integer; const value: string);var cellrect: trect; /記錄單元格的區域,用于設置begin in

40、herited; if reg = false then begin grid.visible := false; /使輔助錄入表格不可用 if (acol = storename) then /按倉庫名稱或簡碼進行匹配查詢 begin with t_data.query1 do begin close; sql.clear; sql.add(select * from tb_storeinfo where storename like :storename or nameshort like :nameshort); parameters.parambyname(storename).val

41、ue := trim(reginfo.cellsstorename,arow)+% ; parameters.parambyname(nameshort).value := trim(reginfo.cellsstorename,arow)+% ; open; end; if t_data.query1.recordcount0 then /根據用戶的輸入是否有匹配的數據 begin regsource.dataset := t_data.query1; if not grid.visible then /計算表格應出現的位置 begin cellrect := reginfo.cellrec

42、t(acol,arow); cellrect.left := cellrect.left+reginfo.left; cellrect.right := cellrect.right+ reginfo.left; cellrect.top := reginfo.top+ cellrect.top; grid.left := cellrect.right+1; grid.top := cellrect.top; grid.visible := true; end; end else begin regsource.dataset := nil; grid.visible := false; ap

43、plication.messagebox(該物資信息不存在.,提示,64); reg := true; reginfo.cellsstorename,row:=; reginfo.col := storename; end; end else if (acol = unitprice)or(acol = convertions)or(acol= num) then /計算金額 begin if (trim(reginfo.cellsunitprice,row)and(trim(reginfo.cellsconvertions,row)and(trim(reginfo.cellsnum,row)

44、then begin reginfo.cellsmoney,row:= floattostr(strtofloat(reginfo.cellsconvertions,row)*strtofloat(reginfo.cellsnum,row)*strtofloat(reginfo.cellsunitprice,row); end else reginfo.cellsmoney,row:= ; stocktotal.text := floattostr(calculatemoney); end; if (row = reginfo.rowcount-1)and(currentisnull = fa

45、lse) then begin reginfo.rowcount := reginfo.rowcount+1; end; end;end;4.4 物資出庫管理模塊設計物資出庫管理模塊主要功能是記錄物資出庫的相關信息。物資出庫管理模塊運行的結果如圖15所示。圖15 物資出庫管理模塊運行的結果1窗體設計步驟(1)選擇“file”/“new”/“other”菜單項,打開“new items”對話框,選擇“bpglxt”選項卡,點選“f_frame”,以繼承方式使用該窗體。單擊【ok】按鈕添加一個新窗體,命名窗體為“f_storeout”,設置caption屬性為“物資出庫管理”。(2)在窗體上添加t

46、label組件,命名為“label1”。設置該組件的caption屬性為“物資出庫管理”。(3)在窗體上添加tpanel組件,命名為“panel2”。設置該組件的align屬性為“albottom”;caption屬性為空。(4)添加4個tlabel組件到組件panel2組件上,分別設置它們的caption屬性為“領取人”、“庫存員”、“操作員”、“時間”。添加3個tedit組件到panel2組件上,分別命名為“outperson”,“storemanager”,“operator”。添加tdatetimepicker組件到panel2組件上,命名為“date”。(6)在窗體上添加tpanel

47、組件,命名為“panel3”。在該組件上添加3個tbitbtn組件,分別命名為“save”、“cancel”、“quit”。添加tlabel組件到panel3組件上;添加tedit組件到窗體上,命名為“memo”,主要組件屬性設置如表2所示。表2 主要組件對象的屬性列表對象名對象類型屬性值savetbitbtncaption保存cancel取消quit退出(7)添加tstringgrid組件到窗體上,命名為“reginfo”。設置該組件的align屬性為“albottom”;colcount屬性為“4”;rowcount屬性為“2”;ctrl3d屬性為“false”。(8)在窗體上添加tdat

48、asource組件,命名為“regsource”;添加tlistbox組件,命名為“list”;添加tcombobox組件,命名為“comstorage”;添加tdbgrid組件,命名為“grid”。設置grid組件的datasource屬性為“regsource”。設計期物資出庫窗體如圖16所示。圖16 設計期物資出庫管理模塊2程序相關代碼在窗體的onshow事件處理過程中,設置tstringgrid組件表格字段名稱,向tcombobox組件中添加倉庫名稱。代碼如下:procedure tf_storeout.formshow(sender: tobject);begin /在窗體顯示時,設

49、置表格字段名稱,向組合框中添加倉庫名稱 inherited; with reginfo do begin cellsbarcode,0:=條形碼; cellsstorename,0:= 物資名稱; cellsnum,0:=數量; cellsstoragename,0:=倉庫名稱; end; with t_data.query1 do begin close; sql.clear; sql.add(select storagename from tb_storageinfo); open; end; if t_data.query1.recordcount0 then begin while n

50、ot t_data.query1.eof do /利用循環的方式向組合框中添加倉庫名稱 begin comstorage.items.add(trim(t_data.query1.fieldbyname(storagename).asstring); t_data.query1.next; end; comstorage.itemindex := 0; end; cancel.click;/調用取消按鈕的單擊事件進行初始化end;在tstringgrid組件的onkeypress事件處理過程中限制輸入的內容。代碼如下:procedure tf_storeout.reginfokeypress(sender: tobject; var key: char);begin inherited; if col = num then begin if not (key in 0.9,.,#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論