【正文】
門(mén)。 第二章 國(guó)內(nèi)外現(xiàn)狀的研究 國(guó)外現(xiàn)狀 計(jì)算機(jī)的發(fā)明應(yīng)用,被視為人類(lèi)的第三次重大的科學(xué)技術(shù)革命,是一次飛躍。 此階段以單項(xiàng)數(shù)據(jù)處理為主,如財(cái)務(wù)管理、物資管理、工資管理等。在此階段解決的主要是面向高層管理,大范圍的決策問(wèn)題以及非結(jié)構(gòu)化信息的處理。 2. 2 國(guó)內(nèi)狀況 由于種種原因,我國(guó)的信息資源建設(shè)水平遠(yuǎn)遠(yuǎn)落后于信息基礎(chǔ)設(shè)施的建設(shè)的水平。因此,信息資源的開(kāi)發(fā)和利用已被確立為國(guó)民經(jīng)濟(jì)信息的核 心內(nèi)容,信息數(shù)字化,傳輸?shù)木W(wǎng)絡(luò)化是縮小發(fā)展中國(guó)家與發(fā)達(dá)國(guó)家差距的捷徑,值世界信息化浪潮正以不可阻擋之勢(shì)席卷全球時(shí),我國(guó)要迎頭趕上,就必須利用現(xiàn)有的信息基礎(chǔ)設(shè)施,重點(diǎn)開(kāi)發(fā)和推廣應(yīng)用于各類(lèi)科技經(jīng)濟(jì)等數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)資源服務(wù)系統(tǒng),以便取得巨大的社會(huì)效益和經(jīng)濟(jì)效益。我國(guó)的計(jì)算機(jī)應(yīng)用要比西方國(guó)家落后十幾年,管理信息系統(tǒng)的開(kāi)發(fā)應(yīng)用是從 1973 年開(kāi)始的, 83 年以后才開(kāi)始了大量的實(shí)際的開(kāi)發(fā)和研究工作。特別是微型計(jì)算機(jī)的出現(xiàn)和普及,為信息處理提供了物美價(jià)廉的手段,對(duì)于推動(dòng)我國(guó)管理信息處理現(xiàn)代化起到了重要作用。供應(yīng)站每月要向局供應(yīng)處及中心機(jī)關(guān)上報(bào)月度庫(kù)存清冊(cè),其數(shù)據(jù)都是從各種賬本中收集,再統(tǒng)計(jì),最后逐級(jí)匯總再報(bào)送。 單位配備的計(jì)算機(jī)僅 局限于打字,做報(bào)表,不能開(kāi)單據(jù),計(jì)算機(jī)應(yīng)有的功能沒(méi)有充分發(fā)揮。系統(tǒng)引進(jìn)了窗體和控件的機(jī)制,用于設(shè)計(jì)應(yīng)用程序界面。程序員不必?fù)?dān)心如何判斷事件是否已發(fā)生,只需要編寫(xiě)一段代碼告訴計(jì)算機(jī)在事件發(fā)生以后應(yīng)該做什么工作就可以了。 利用 VB 的事件驅(qū)動(dòng)性特點(diǎn),只需在窗體或控件上的代碼窗口中添加少量的代碼,便可達(dá)到告訴當(dāng)在相應(yīng)的窗體或控件上發(fā)生某一事件時(shí),它們?cè)谑录l(fā)生后應(yīng)該做什么工作的目的。 下面將分別對(duì)這些控件的主要功能及使用方法進(jìn)行介紹。許多其他的數(shù)據(jù)庫(kù)操作控件都需要 Data 控件或類(lèi)似的數(shù)據(jù)源控件(比如 ADO Data 控件)。因?yàn)槌绦騿T無(wú)需編寫(xiě)任何代碼,就可以在這些控件中顯示 當(dāng)前記錄的數(shù)據(jù)。內(nèi)部的 Picture、 Label、 TextBox、CheckBox、 Image、 OLE、 ListBox 和 ComboBox 控件也是數(shù)據(jù)覺(jué)察的,能和由 Data 控件管理的 Recordset 對(duì)象的某個(gè)字段相連接。 DataCombo 控件的功能與DataList 控件完全相同,只不過(guò) DataCombo 控件是一個(gè)組合框。這個(gè) DataGrid 控件實(shí)際上是一個(gè)固定的列集合,每一列的行數(shù)都是不確定的。 SQL 語(yǔ)言在 VB 中的應(yīng)用 提供的實(shí)用函數(shù) 為實(shí)現(xiàn)使用 VB 程序調(diào)用 SQL 語(yǔ)言訪問(wèn) Access 數(shù)據(jù)庫(kù)多個(gè)記錄的目的,我們利用 SQL提供的函數(shù)。 ( 1)建立一個(gè)新的查詢(xún) set mydb=Open Database(“c:\DIR1\”) (打開(kāi)數(shù)據(jù)庫(kù)文件 c:\DIR1\) set myquery= QueryDef(“monthquery”)(創(chuàng)建查詢(xún)名為 monthquery 的查詢(xún) ) =”select*from OPNRPT where mid $(year,7,2)=’”amp。需要說(shuō)明的兩點(diǎn)是:①使用前先定義 Dim mydb AS Database 及 myquery AS querydef.②查詢(xún) ”monthquery”沒(méi)有使用 Data 控件,也就不直接顯示信息。 通過(guò)這 一個(gè)方法定義的記錄集可以使用 move 和 Find 方法逐條記錄的進(jìn)行操作。 Access 的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。 Access 是一種關(guān)系數(shù)據(jù)庫(kù)工具,關(guān)系數(shù)據(jù)庫(kù)是已開(kāi)發(fā)的最通用的數(shù)據(jù)庫(kù)之一。計(jì)算機(jī)的數(shù)據(jù)庫(kù)可以分為兩類(lèi):非關(guān)系數(shù)據(jù)庫(kù)( flatfile)和關(guān)系數(shù)據(jù)庫(kù)( relational)。 1. 標(biāo)識(shí)需要的數(shù)據(jù); 2. 收集被標(biāo)識(shí)的字段到表中; 3. 標(biāo)識(shí)主關(guān)鍵字字段; 4. 繪制一個(gè)簡(jiǎn)單的數(shù)據(jù)圖表; 5. 規(guī)范數(shù)據(jù); 6. 標(biāo)識(shí)指定字段的信息; 7. 創(chuàng)建物理表。一個(gè)連接是 指一種虛擬的表,這種表是在當(dāng)用戶(hù)要求從相互關(guān)聯(lián)的各個(gè)不同的表中獲取信息時(shí)建立的,關(guān)鍵字段用于在相互連接的不同表中查找匹配的記錄。在表中使用的關(guān)鍵字類(lèi)型用于描述庫(kù)表示什么以及在數(shù)據(jù)庫(kù)中如何與其它的庫(kù)建立關(guān)系。 當(dāng)然,物資管理中貨品入庫(kù)也是常有的事,入庫(kù)管理操作就是對(duì)于貨品入庫(kù)情況的管理,用戶(hù)可以方便地輸入一些貨品的信息。物資管理人員可以瀏覽、查詢(xún)、添加、刪除等貨品的基本信息以及統(tǒng)計(jì)等,并可以對(duì)一些基本的信息生成報(bào)表形式,并打印輸出的功能。 ,業(yè)務(wù)操作簡(jiǎn)單,進(jìn)入系統(tǒng)即能使用。操作快捷、方便。 幫助:本系統(tǒng) 的幫助信息,包括應(yīng)用程序的版本信息; 貨品信息管理:對(duì)物資管理里的貨品進(jìn)行登記; 貨品物資管理:管理物資管理的物資管理情況; 貨品管理:對(duì)物資管理里短線(xiàn)的貨品進(jìn)行登記,以便及時(shí)采購(gòu)補(bǔ)貨; 入庫(kù)登記管理:能對(duì)貨品的入庫(kù)登記,刪除,更改等; 入庫(kù)期間統(tǒng)計(jì):貨品入庫(kù)期間年度的統(tǒng)計(jì); 出庫(kù)登記管理:能對(duì)貨品的出庫(kù)登記,刪除,更改等; 可根據(jù)輸入的條件,對(duì)貨品的入庫(kù)信息,物資管理信息等進(jìn)行簡(jiǎn)單查詢(xún)和組合查詢(xún)。 ●入庫(kù)登記統(tǒng)計(jì)表 入庫(kù)登記 _合計(jì) ●貨品入庫(kù)年度統(tǒng)計(jì)表 入庫(kù)登記 _n ●供貨單位年度供貨金額統(tǒng)計(jì)表 入庫(kù)登記 _w ●物資管理匯總表 物資管理 ●銷(xiāo)售登記統(tǒng)計(jì)表 銷(xiāo)售登記 _合計(jì) 表 3 入庫(kù)登記表 表 5 供貨單位信息表 表 7 用戶(hù)表 第五章 應(yīng)用程序設(shè)計(jì) 在進(jìn)入系統(tǒng),要求輸入用戶(hù)名和密碼。定義一個(gè) ListItem 對(duì)象 Dim a Dim key As String 39。判斷是否使用的是超級(jí)口令登錄 (2).Text = 當(dāng)前操作員: mr Name1 = Unload Me Else = select * from tb_enter where M_Name =39。 If 0 Then MPassword = (M_Password) If = MPassword Then 39。 \系統(tǒng)日志 .ini) For Output As 1 Print 1, TStr Close 1 Unload Me Else MsgBox 密碼不正確 ,請(qǐng)您確認(rèn)后重新輸入 , , 庫(kù)存管理系統(tǒng) = End If Else MsgBox 對(duì)不起 沒(méi)有此用戶(hù)的信息 , , 庫(kù)存管理系統(tǒng) = = End If End If End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Call WHScreen rtn = SetWindowPos(, 1, 0, 0, 0, 0, 3) 39。 amp。 + + 39。需要哪個(gè)功能的時(shí)候就點(diǎn)哪個(gè)菜單,相對(duì)應(yīng)的窗體會(huì)自動(dòng)彈出。聲明 API 函數(shù)及常量 Private Declare Function GetSystemMenu Lib user32 (ByVal hwnd As Long, ByVal bRevert As Long) As Long Private Declare Function RemoveMenu Lib user32 (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Private Const MF_REMOVE = amp。顯示查看日志窗體 = False End Sub Private Sub CKSZ_Click() 39。顯示出入庫(kù)信息日統(tǒng)計(jì)窗體 = False End Sub Private Sub CZYQXSZ_Click() 39。 此界面下只有給了管理員權(quán)限后才可以進(jìn)行操作,若沒(méi)有給予權(quán)限則不能進(jìn)行操作。用于顯示編號(hào)信息的變量 Dim StrNum As Long 39。單擊“添加”按鈕之后,清空文本框中的內(nèi)容 Text1(i).Text = Next i = select * from tb_in order by ID If 0 Then 39。 Trim(StrTemp) amp。運(yùn)用 API 函數(shù) SetWindowPos,來(lái)實(shí)現(xiàn)取消窗體置前的 功能 If = False Then c = MsgBox(您確認(rèn)要?jiǎng)h除該記錄嗎 ?, 17, 刪除提示信息 ) If c = vbOK Then 39。 + Text1(2).Text + 39。 Val(Text1(4).Text) amp。 + Str(SNum) + 39。 + Text1(2).Text + 39。 Val(Text1(4).Text) amp。清空文本框中的內(nèi)容 Text1(i).Text = Next i = False End If Else MsgBox 當(dāng)前數(shù)據(jù)庫(kù)中已經(jīng)沒(méi)有可刪除的記錄 , 64, 提示信息 End If Call TRefresh End Sub Private Sub Cmd_exit_Click() Unload Me End Sub 貨品出庫(kù)界面實(shí)現(xiàn) 對(duì)于貨品 出庫(kù) 的 添加、刪除、修改等操作,在貨品出庫(kù)界面實(shí)現(xiàn)。運(yùn)用在 FOR 循環(huán)中的變量 Dim StrTemp 39。*** “添加”貨品出庫(kù)信息按鈕的事件過(guò)程 *** Private Sub Cmd_Add_Click() For i = 0 To 5 39。 Trim(StrTemp) amp。 調(diào) 用 數(shù) 據(jù) 反 綁 定 過(guò) 程 39。利用代碼連接數(shù)據(jù)庫(kù) = Provider=。Persist Security Info=False = select * from tb_out 39。每個(gè)界面都可以實(shí)現(xiàn)顯示全部產(chǎn)品。通過(guò)代碼連接數(shù)據(jù)庫(kù) = Provider=。Persist Security Info=False = select * from tb_kcxx 39。執(zhí)行錯(cuò)誤處理 39。 源程序代碼: Dim itmX As ListItem 39。*** 給操作員授權(quán)的事件過(guò)程 *** Private Sub Cmd_sq_Click() rtn = SetWindowPos(, 2, 0, 0, 0, 0, 3) 39。 If 0 Then c = MsgBox(確認(rèn)要將所選權(quán)限的信息賦給該操作員嗎 ?, 33, 提示信息 ) If c = vbOK Then 39。 + Str() + 39。 + Str() + 39。,[6]= 39。,[8]= 39。,[10]= 39。 _ Str() + 39。 + Str() + 39。 + Str() + 39。 amp。,[19]= 39。,[21]= 39。) MsgBox 成功授權(quán) !!, 48, 信息提示 = False Else End If End If 39。Data Source= amp。連接操作員信息表 = ( ) / 2 = ( ) / 2 a = = select * from tb_enter If 0 Then = True 39。 If 0 Then 39。 + +