【正文】
物的操作。(14)在該窗體上添加1個(gè)Ado控件。(16)在該窗體中添加1個(gè)DataGrid控件,將DataGrid控件的名稱設(shè)置為Dgr_Sjll,DataSource屬性設(shè)置為Adodc1,設(shè)計(jì)完成的界面如圖14所示。圖14 托運(yùn)貨物管理窗體的設(shè)計(jì)界面2.貨物托運(yùn)管理窗體的代碼設(shè)計(jì)在窗體啟動(dòng)時(shí),通過調(diào)用LoadFile過程,在窗體上顯示數(shù)據(jù),同時(shí)利用Ado對(duì)象計(jì)算出當(dāng)前數(shù)據(jù)庫中數(shù)據(jù)記錄的條數(shù),代碼如下:Private Sub Form_Load() Call RefreshData Call LoadFile For i = 1 To 21 39。 amp。根據(jù)日期產(chǎn)生流水賬號(hào) select * from tb_Goods_tyd where tyd_tydh like 39。 order by tyd_tydh, Cnn, adOpenKeyset If 0 Then = Val((tyd_tydh)) + 1 Else = Format(Date, yyyymmdd) amp。刪除信息 Call Deletes Case 3 39。保存信息 Call Saves Case 5 Call Tbr_cortrol(Tbr_xxcz, True) For i = 1 To 21 Text1(i).Text = Text1(1).SetFocus Next i Case 6 39。使添加貨物窗體中的“刪除”按鈕不可用 1 Case 7 39。 amp。 39。調(diào)用顯示數(shù)據(jù)的過程 End If 39。 amp。 39。調(diào)用數(shù)據(jù)刷新的過程 Call DBGConEnd Sub通過時(shí)鐘控件,將當(dāng)前數(shù)據(jù)庫中的記錄條數(shù)顯示在標(biāo)簽控件Lbl_Num當(dāng)中,實(shí)現(xiàn)的代碼如下所示:Private Sub Timer1_Timer() On Error Resume Next 39。 amp。 + Text1(1) + 39。 amp。 39。 amp。 39。 amp。 39。 Text1(3) amp。 Text1(4) amp。 + Text1(0) + 39。在途跟蹤管理模塊的運(yùn)行結(jié)果如圖15所示。(2)在窗體上添加1個(gè)Toolbar控件和1個(gè)ImageList控件。(4)在窗體上添加1個(gè)Ado控件。(6)在窗體上添加DataGrid控件,將DataGrid控件的名稱設(shè)置為Dgr_Sjll,DataSource屬性設(shè)置為Adodc1。圖16 在途跟蹤管理窗體的設(shè)計(jì)2.代碼設(shè)計(jì)通過單擊選擇ListView控件中的元素(托運(yùn)單號(hào)),在窗體中即可以顯示相對(duì)應(yīng)托運(yùn)單號(hào)的數(shù)據(jù)信息,同時(shí)查詢tb_Goods_ztgzlx數(shù)據(jù)表,從中檢索出該托運(yùn)單號(hào)的跟蹤路線信息,實(shí)現(xiàn)的代碼如下所示:Private Sub ListView1_Click() select * from tb_Goods_ztgz where ztgz_cydh=39。 amp。 order by ztgz_cydh, Cnn, adOpenKeyset If 0 Then Text1(0).Text = (ztgz_id) Text1(1).Text = (ztgz_cydh) Text1(2).Text = (ztgz_sjxm) Text1(3).Text = (ztgz_cphm) = (ztgz_dasj) Text1(4).Text = (ztgz_sjsj) Text1(5).Text = (ztgz_dadd) Text1(6).Text = (ztgz_bz) End If 39。 amp。 39。關(guān)閉記錄集對(duì)象 = select * from tb_Goods_ztgz where ztgz_cydh=39。 39。給DataGrid控件的列標(biāo)題賦值End Sub在工具欄中單擊【保存】按鈕將調(diào)用用戶自定義的保存過程,保存在途跟蹤信息,用戶自定義的保存過程的代碼如下:Private Sub Saves() 39。 + Text1(0) + 39。 amp。 39。 amp。 39。 amp。 39。 amp。 39。 amp。 39。 amp。 39。 amp。 39。 amp。 39。 + Text1(1) + 39。統(tǒng)計(jì)到達(dá)的路線 Set AdoRs = (UPDATE tb_Goods_ztgzlx SET ztgzlx_lx=39。 where ztgzlx_tydh=39。) Else Call DDTJ 39。 amp。 39。 amp。 39。刪除信息 c = MsgBox(確認(rèn)刪除該信息嗎, 17, 提示信息) If c = vbOK Then On Error Resume Next Set AdoRs = (Delete tb_Goods_ztgz from tb_Goods_ztgz where ztgz_id=39。) 39。清除列表控件的內(nèi)容 Call RefreshDataEnd Sub在保存在途跟蹤信息的時(shí)候,需要調(diào)用用戶自定義的DDTJ過程,完成在文本框Txt_lx中顯示跟蹤路線信息的功能,DDTJ過程的實(shí)現(xiàn)代碼如下:Private Sub DDTJ() select * from tb_Goods_ztgz where ztgz_cydh=39。, Cnn, adOpenKeyset If 0 Then 39。執(zhí)行錯(cuò)誤處理 For i = 0 To If = Then = 公司本部 amp。 (ztgz_dadd) Else = amp。 (ztgz_dadd) End If 39。關(guān)閉記錄集對(duì)象End Sub 信息查詢在應(yīng)用軟件的設(shè)計(jì)過程中,將同一項(xiàng)功能設(shè)計(jì)到同一個(gè)窗體當(dāng)中是非常必要的,這樣會(huì)減少應(yīng)用程序中窗體的數(shù)量和代碼數(shù)量,提高程序的運(yùn)行速度,本系統(tǒng)當(dāng)中的查詢模塊就是這樣設(shè)計(jì)的。信息查詢模塊的運(yùn)行結(jié)果如圖17所示(這里以貨物托運(yùn)單查詢?yōu)槔#?)在窗體上添加1個(gè)Ado控件,其名稱為默認(rèn)。(4)在窗體上添加1個(gè)DataGrid控件,將DataGrid控件的名稱設(shè)置為“Dgr_Cx”,DataSource屬性設(shè)置為Adodc1。圖18 信息查詢窗體的設(shè)計(jì)結(jié)果2.代碼設(shè)計(jì)在窗體啟動(dòng)時(shí),通過接收到不同的標(biāo)識(shí)變量值,將相應(yīng)的查詢字段信息添加到ComboBox控件當(dāng)中,并且根據(jù)標(biāo)識(shí)變量執(zhí)行相應(yīng)的查詢函數(shù)Flcx(),完成在窗體上顯示數(shù)據(jù)表中所有數(shù)據(jù)的功能,實(shí)現(xiàn)的代碼如下:Private Sub Form_Load() select * from tb_Goods_sqd, Cnn, adOpenKeyset If 0 Then End If = ( ) / 2 = ( ) / 2 If StrCx = 1 Then Call Flcx(1) 39。執(zhí)行車輛調(diào)度信息查詢 ElseIf StrCx = 3 Then Call Flcx(3) 39。執(zhí)行托運(yùn)驗(yàn)收信息查詢 End If = PublicStr = StrRs Set = Adodc1 If StrCx = 1 Then 39。調(diào)用保存查詢字符串的過程 For i = 0 To 23 (i).Caption Next i ElseIf StrCx = 2 Then 39。添加貨物托運(yùn)信息查詢字段 Call DgrTitle(3) For i = 0 To 23 (i).Caption Next i ElseIf StrCx = 4 Then 39。貨物申請查詢 = 貨物申請單查詢 StrRs = select * from tb_Goods_sqd order by sqd_lszh Case 2 = 車輛調(diào)度查詢 StrRs = select * from tb_Goods_cldd order by cldd_id Case 3 = 貨物托運(yùn)單查詢 StrRs = select * from tb_Goods_tyd order by tyd_tydh Case 4 = 貨物驗(yàn)收單查詢 StrRs = select * from tb_Goods_khys order by khys_id End SelectEnd Sub通過文本框中字符信息的改變,調(diào)用查詢事件的過程FlcxChage執(zhí)行查詢事件,完成各種查詢功能。貨物申請單查 Call FlcxChage(1) 39。車輛調(diào)度查詢 Call FlcxChage(2) Call DgrTitle(2) ElseIf StrCx = 3 Then 39。貨物驗(yàn)收單查詢 Call FlcxChage(4) Call DgrTitle(4) End If End IfEnd Sub在用戶自定義的FlcxChage函數(shù)過程當(dāng)中,完成隨時(shí)查詢的操作,實(shí)現(xiàn)的代碼如下:Private Sub FlcxChage(Nums As Integer) Select Case Nums Case 1 39。 Coms amp。% + + %39。執(zhí)行車輛調(diào)度查詢 = select * from tb_Goods_cldd where amp。 Like 39。 Case 3 39。 Coms amp。% + + %39。執(zhí)行托運(yùn)驗(yàn)收查詢 = select * from tb_Goods_khys where amp。 Like 39。 End SelectEnd Sub附錄A 參考文獻(xiàn)1.Visual Basic精彩編程200例 機(jī)械工業(yè)出版社 賽奎春、高春艷等 2003年1月 2.Visual Basic數(shù)據(jù)庫開發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 劉志銘、高春艷等 2003年8月 3.Visual FoxPro數(shù)據(jù)庫開發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 王晶瑩、王國輝等 2003年9月 4.Power Builder數(shù)據(jù)庫開發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 華傳銘、張振坤等 2003年9月 5.Delphi數(shù)據(jù)庫開發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 賽奎春、鄭驍鵬等 2004年2月 6.PowerBuilder 精彩編程200例 機(jī)械工業(yè)出版社 張振坤、李文立等 2004年9月7.Visual FoxPro 精彩編程200例 機(jī)械工業(yè)出版社 王國輝、董韶華等 2004年9月8.ASP數(shù)據(jù)庫開發(fā)實(shí)例解析 機(jī)械工業(yè)出版社 李嚴(yán)、于亞芳、王國輝 2004年12月9.Delphi工程應(yīng)用與項(xiàng)目實(shí)踐 機(jī)械工業(yè)出版社 宋坤、趙智勇等 2005年1月 10.Visual Basic工程應(yīng)用與項(xiàng)目實(shí)踐 機(jī)械工業(yè)出版社 高春艷、李俊民等 2005年1月 11.Visual C++工程應(yīng)用與項(xiàng)目實(shí)踐 機(jī)械工業(yè)出版社 張雨、阮偉良等 500