【文章內容簡介】
建當日期 日期 /時間 備注 文本 100 4. 進貨單 jinhuodan 進貨單 jinhuodan用來保存產品入庫的詳細情況,結構見表。 表 表 jinhuodan的結構 字段名稱 數據類型 字段大小 產品名稱 文本 50 產品編號 文本 25 數量 數字 雙精度型 進價 貨幣 金額 貨幣 備注 文本 100 供貨商名稱 文本 50 進貨日期 日期 /時間 經手人 文本 25 進貨單號 文 本 25 5. 客戶 kehu 客戶 kehu用來保存客戶基礎信息,結構見表 。 產品進銷存管理系統(tǒng) 19 表 表 kehu的結構 字段名稱 數據類型 字段大小 客戶名稱 文本 50 客戶編號 文本 25 負責人 文本 25 聯絡人 文本 25 地址 文本 50 電話 文本 25 傳真 文本 25 EMail 文本 50 郵編 文本 25 付款方式 文本 25 付款天數 文本 50 客戶類別 文本 10 建當日期 日期 /時間 備注 文本 100 6. 登陸 login 登陸 login用來保存用戶名 基于密碼,結構見表 。 表 表 login的結構 字段名稱 數據類型 字段大小 用戶名 文本 25 密碼 文本 6 7. 權限設置 quanxianshezhi 權限設置 quanxianshezhi用來保存用戶的權限,結構見表 所示。 表 表 quanxianshezhi的結構 字段名稱 數據類型 字段大小 用戶管理 是 /否 1 初期建賬 是 /否 1 數據備份 是 /否 1 數據恢復 是 /否 1 進貨單 是 /否 1 出貨單 是 /否 1 客戶 是 /否 1 產品進銷存管理系統(tǒng) 20 (續(xù)) 字段名稱 數 據類型 字段大小 供貨商 是 /否 1 入庫查詢 是 /否 1 出庫查詢 是 /否 1 庫存賬查詢 是 /否 1 用戶名 文本 25 密碼 文本 6 產品進銷存管理系統(tǒng) 21 第四章 關鍵技術 167。 如何實現數據備份與數據恢復 數據對一個單位是至關重要的。數據庫的失效常常導致一個單位的癱瘓。任何系統(tǒng)總不可能不出故障。數據備份對數據庫的安全來說是一個重要的措施。數據備份是指在某種介質(磁帶、磁盤等)上存儲數據庫的拷貝。數據恢復是指及時將數據庫返回到原來的狀態(tài)。這里,用拷貝文件的原理來實現數據備份與數據恢復,所以在程序中用 到了 FileCopy語句。其語法如下: FileCopy source , destination FileCopy語句含有以下這些命令參數,見表 。 表 FileCopy語句的參數 參 數 描 述 source 必要參數。字符串表達式,用來表示要被復制的文件名。 source可以包含目錄或文件夾以及驅動器 destination 必要參數。字符串表達式,用來表示要復制的目的文件名。 destination可以包含目錄或文件夾以及驅動器 167。 如何實現權限設置 為了能達到 依不同的 用戶給與不同的運行權限 的目標,在這個系統(tǒng)中作了權限設置的模塊。 首先要在數據庫 db1中建一個表 quanxianshezhi用來保存每個用戶的運行權限。在權限設置模塊中可修改各個用戶的權限。當用戶登陸進入系統(tǒng)后,其用戶名將顯示在主界面的 StatusBar控件的第四個窗格內,被激活的主界面窗體就可根據所顯示的用戶名在表 quanxianshezhi中查找相應的用戶權限,根據各個字段的值來設置菜單可否使用。從而實現權限設置。 167。 如何在 MSFlexGrid中靈活地輸入數據 文本方式數據錄入簡單方便,但在錄 入大量數據事就很麻煩了。表單方式數據錄入可解決這方面的問題,而且在輸入數據失誤時也容易修改。在程序設計時,當批量錄入數據,此種方法就很有優(yōu)勢,在這個系統(tǒng)的進貨單和出貨單部分我都使用了產品進銷存管理系統(tǒng) 22 MSFlexGrid控件來實現。 MSFlexGrid控件是一種 Active控件,該控件提供了表格式界面,處理數據相當靈活,具有只讀數據綁定、對表格數據進行顯示和操作、數據分組排序、 Data控件賦值、文本自動換行等功能。唯一缺憾的是 MSFlexGrid控件不允許動態(tài)輸入數據,但這里我們可以利用 MSFlexGrid控建的文本換行功 能和 MSFlexGrid控件的一些屬性、方法,結合 Text控件來實現向 MSFlexGrid控件中輸入數據。由于在進貨單和出貨單部分都使用了 MSFlexGrid控件,故在窗體 amainform中可以使用公用函數來代替在多個程序中頻繁使用的代碼(如 entercell、 moveright、 moveleft、 movereturn),只需調用所需的函數即可。程序運行后,單擊任一單元格, Text控件將移到該單元格,向 Text控件輸入數據,按回車鍵后數據將保存到 MSFlexGrid控件單元格中。在 MSFlexGrid控件 單元格內按回車鍵, Text控件移到下一單元格, Text控件可自動獲得所在單元格的值。 167。 如何保存表格中的數據 運用循環(huán)語句,將表格中的數據一條一條地保存。這里注意,再不知道循環(huán)內需要值信多少次語句時,可以用 Do循環(huán)。但是,再知道要執(zhí)行多少次時,則最好使用 For? Next循環(huán)。與 Do循環(huán)不同, For循環(huán)使用一個叫做計數器的變量,每重復一次循環(huán)之后,計數器變量地值就會增加或減少。下面是以進貨單為例的保存入庫數據的一段代碼。 Dim As New Dim rs1 As New Dim rs2 As New Set = New Set rs1 = New Provider=。Data Source= amp。 amp。 \ select * from jinhuodan, , adOpenStatic, adLockOptimistic For i = 1 To 100 If (i, 1) And (i, 3) Then 39。添加入庫商品信息到 jinhuodan表中 If (i, 1) Then (產品名稱 ) = (i, 1) If (i, 2) Then (產品編號 ) = (i, 2) 產品進銷存管理系統(tǒng) 23 If (i, 3) Then (數量 ) = (i, 3) If (i, 4) Then (進價 ) = (i, 4) If (i, 5) Then (金額 ) = (i, 5) If (i, 6) Then (備注 ) = (i, 6) If Then (供貨商名稱 ) = If Then (經手人 ) = If Then (進貨日期 ) = If Then (進貨單號 ) = 39。更新表 End If Next i : : For i = 1 To 100 For j = 1 To 6 (i, j) = Next j Next i 167。 如何動態(tài)統(tǒng)計表格中的求和項 在進行進貨單、出貨單的數據錄入時,經常需要系統(tǒng)自動計算合計數量、合計金額(即整個單據的所有產品的合計數量、合計金額)。這里還是利用循環(huán)語句。下面是以進貨單為例的計算合計入庫數量、合計入庫金額的一段代碼。 Dim A, B As Single For i = 1 To 31 A = Val((i, 5)) + A B = Val((i, 3)) + B If (i,1)And (i,3)Then = i Next i = A: = B 39。計算合計金額,合計數量 167。 如何實現數據的模糊查詢 模糊查詢時多種查詢方式的一種,也是比較常用的一種查詢方式。在模糊查詢中我們用到了 Like語句進行模式匹配。 產品進銷存管理系統(tǒng) 24 第五 章 模塊設計 167。 主程序界面設計 1. 實現目標 程序啟動后,在登陸界面驗證操作員密碼后,將進入主程序界面。主程序界面主要實現如下功能: ① 選擇主界面的菜單或工具欄,調用相應程序,進行相應操作。 ② 顯示日期、時間及登陸的用戶名。 主程序界面如圖 。 圖 主程序界面 2. 程序代碼 Public Sub entercell() 39。公共函數 Dim x, y As String If = 1 Then Set myform = jinhuodan If = 2 Then Set myform = chuhuodan If = 0 Or = 0 Then Exit Sub x = (, ) y = (, 0) If y Then If = 3 Then 產品進銷存管理系統(tǒng) 25 = + 1 End If If 0 And 0 Then = = = + = + End If x = (, ) y = (, 0) p = (, ) = = 0 = Len() End If End Sub Public Sub moveright() 39。公共函數 If = 1 Then Set myform = jinhuodan If = 2 Then Set myform = chuhuodan If Then = 0 = Len() End If If + 1 = 1 Then = + 1 Else If + 1 = 1 Then = + 1 = 1 End If End If End Sub Public Sub moveleft() 39。公共函數 If = 1 Then Set myform = jinhuodan If = 2 Then Set myform = chuhuodan If Then = 0 產品進銷存管理系統(tǒng) 26 = Len() End If If 11 = + 1 Then = 1 If = 0 Then = 1 Else If + 1 = 1 Then = + 1 = 1 End If End If End Sub Public Sub movereturn() 39。公共函數 If = 1 Then Set myform = jinhuodan If = 2 Then Set myform = chuhuodan If = 10 Then = + 1 = 1 Else If + 1 = 1 Then = + 1 Else If + 1 = 1 Then = + 1 = 1 End If End If End If End Sub Private Sub Form_Load() = amp。 \ 39。自動識別數據庫路徑 End Sub Private Sub Form_Activate() 39。設置操作員權限 With If .BOF = False Then .MoveFirst 產品進銷存管理系統(tǒng) 27 .FindFirst 用戶名 like + Chr(34) + (4).Text + Chr(34) + If .NoMatch Then Else .Enabled = .Fields(用戶管理 ) .Enabled = .Fields(初期建賬 ) .Enabled = .Fields(數據備份 ) .Enabled = .Fields(數據恢復