【正文】
2)控件和事件 a)treeview 控件: nodeclick 事件是將 treeview 控件選中的節(jié)點(diǎn)值傳給文本框,得到卷號(hào)和卷名,將此作為網(wǎng)格容器控件中的數(shù)據(jù)源的查詢條件。并將查詢記錄集作為網(wǎng)格容器控件中的數(shù)據(jù)源。 實(shí)現(xiàn)的語(yǔ)句如下: Dim db As Connection Set db = New Connection = adUseClient PROVIDER=。Data Source=。 Set adoPrimaryRS = New Recordset = Left$(Right$(, 3), 2) = = Left$(, Len() 4) If 00 Then Set adoPrimaryRS = New Recordset select 卷號(hào) ,卷名 ,文件號(hào) ,文件名 ,作者 ,入庫(kù)日期 ,內(nèi)容摘要 ,檔案柜號(hào) ,入卷日期 ,組卷人 ,狀態(tài) from file where 卷號(hào) like 39。% amp。 amp。 %39。, db, adOpenStatic, adLockOptimistic Else = 00 = End If = True = True Set = adoPrimaryRS b)“查詢”按鈕控件: click 事件 是根據(jù)當(dāng)前窗體中的組合框控件和文本框控件的內(nèi)容,作為查詢的條件。這個(gè)查詢是本系統(tǒng)最重要的一個(gè)功能。它的實(shí)現(xiàn)關(guān)鍵功能語(yǔ)句與說(shuō)明如下: Dim db As Connection Set db = New Connection = adUseClient PROVIDER=。Data Source=。 Set adoPrimaryRS = New Recordset a = b = select 卷號(hào) ,卷名 ,文件號(hào) ,文件名 ,作者 ,入庫(kù)日期 ,內(nèi)容摘要 ,檔案柜號(hào) ,入卷日期 ,組卷人 ,狀態(tài) from file where amp。 a amp。 like 39。% amp。 b amp。 %39。, db, adOpenStatic, adLockOptimistic Set = adoPrimaryRS c) 導(dǎo)出按鈕控件的 click 事件是將當(dāng)前網(wǎng)格容器控件中的 查詢結(jié)果導(dǎo)出到 EXCEL表以實(shí)現(xiàn)報(bào)表打印。導(dǎo)出的主要語(yǔ)句如下: For i = 0 To 1 For j = 0 To 1 = i = j (i + 2, j + 1) = Next j Next i Set xlapp = Nothing Set xlbook = Nothing 利用雙重循環(huán)控制導(dǎo)出的位置。導(dǎo)出的界面如下: 說(shuō)明:上面是一個(gè)對(duì)卷號(hào)為 03 的卷宗實(shí)現(xiàn)查詢的結(jié)果導(dǎo)出到 EXCEL 的結(jié)果。 為了實(shí)現(xiàn)組卷,還需要用到文檔資料和檔案柜資料的 2 個(gè)窗體,它們分別是在添加文檔到卷宗來(lái)的時(shí)候,有 2 個(gè)文本號(hào)選擇和檔案柜號(hào)選擇按鈕激發(fā)的事件結(jié)果。這二個(gè)窗體運(yùn)行的界面如下: 說(shuō)明:選擇某個(gè)檔案柜號(hào),然后點(diǎn)擊確定,幾個(gè)觸發(fā)它的 click 事件,將當(dāng)前的檔案號(hào) 添加到組卷窗體的檔案號(hào)中, click 事件的語(yǔ)句是: = 文件資料窗體運(yùn)行界面: 控件有:確定和關(guān)閉按鈕二個(gè)控件。該窗體裝載是 load 事件自動(dòng)實(shí)現(xiàn)對(duì)文件數(shù)據(jù)庫(kù)中的狀態(tài)是“否”的文件搜索到記錄集中,并作為網(wǎng)格容器控件的數(shù)據(jù)源。網(wǎng)格控件的 click 事件是將選中的記錄添加到組卷窗體中的相應(yīng)文本框中。作為組卷的數(shù)據(jù)信息。 load 事件的代碼如下: Set db = New Connection = adUseClient PROVIDER=。Data Source=。 Set adoPrimaryRS = New Recordset select 文件號(hào) ,文件名 ,狀態(tài) from file where 狀態(tài) =39。否 39。 , db, adOpenStatic, adLockOptimistic Set = adoPrimaryRS 設(shè)計(jì)一個(gè)菜單系統(tǒng),一般要經(jīng)過(guò)幾個(gè)步驟:菜單系統(tǒng)的規(guī)劃,建立菜單與子菜單,把任務(wù)分配到菜單系統(tǒng)中,生成菜單程序,測(cè)試和運(yùn)行菜單系統(tǒng)等, 是通過(guò)設(shè)計(jì)窗體來(lái)完成菜單的設(shè)計(jì)界面的,本系統(tǒng)設(shè)計(jì)的菜單運(yùn)行如下: 各個(gè)菜單項(xiàng)的 click 事件代碼如下: Private Sub exit_Click() End End Sub Private Sub file_Click() End Sub Private Sub Form_Load() Left = ( Width) \ 2 Top = ( Height) \ 2 End Sub Private Sub jiangui_Click() End Sub Private Sub setup_Click() End Sub Private Sub zhujuan_Click() End Sub 其中的 Left = ( Width) \ 2 Top = ( Height) \ 2 是控制窗體在屏幕中的位置居中。 總 結(jié) 經(jīng)過(guò)多日來(lái)的努力《文檔管理系統(tǒng)》終于完成了?;仡欉@次畢業(yè)設(shè)計(jì)的過(guò)程,我覺(jué)得收獲很大,現(xiàn)借撰寫(xiě)論文總結(jié)的機(jī)會(huì),談一談我的體會(huì)。 通過(guò)這次畢業(yè)設(shè)計(jì),我掌握了一種新的數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)工具 Visual 。我對(duì)于它具有的可視化的編程環(huán)境和連接數(shù)據(jù)庫(kù)的便捷性用感觸頗深, Visual 這 些數(shù)據(jù)庫(kù)的連接提供了多種方法。比如 DATA 控件對(duì)初學(xué)著就非常容易掌握,當(dāng)然利用語(yǔ)句對(duì)數(shù)據(jù)庫(kù)的連接就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的高級(jí)應(yīng)用。Visual 這種面向?qū)ο蟮臄?shù)據(jù)庫(kù)開(kāi)發(fā)工具提供了窗體這種戶非常友好的交互方式。利用設(shè)計(jì)好的窗體據(jù)庫(kù)的記錄進(jìn)行操作,不但使用戶更清楚記錄的具體變更情況,也使開(kāi)發(fā)人員的工作輕松了許多。 同時(shí),在這次畢業(yè)設(shè)計(jì)過(guò)程中,我始終遵循軟件工程的思想,這使我的工作進(jìn)度明顯加快,也使我少走了不少?gòu)澛贰\浖こ痰乃枷?,指?dǎo)我一步一步從系統(tǒng)分析,到系統(tǒng)設(shè)計(jì),再到系統(tǒng)實(shí)現(xiàn),讓我對(duì)整個(gè)系統(tǒng)的開(kāi) 發(fā)過(guò)程有了明顯的全局觀念,也合理地安排了整個(gè)設(shè)計(jì)的時(shí)間。 以上是我在本次畢業(yè)設(shè)計(jì)中的體會(huì),也許認(rèn)識(shí)到的問(wèn)題還很膚淺,這也正是我今后要努力提高的。 致 謝 在本次畢業(yè)設(shè)計(jì)的過(guò)程中,我的指導(dǎo)教師給了我很大的幫助。不僅使我在規(guī)定的時(shí)間內(nèi)完成了系統(tǒng)的設(shè)計(jì),同時(shí)還使我學(xué)到了很多有益的經(jīng)驗(yàn)。在此,我謹(jǐn)向他表示最衷心的感謝。 同時(shí),學(xué)校給了我這次畢業(yè)設(shè)計(jì)的機(jī)會(huì),使我得到了很好的鍛煉,在此,我也向?qū)W校的各位老師表示最誠(chéng)摯的感謝。 主要參考文獻(xiàn) 作者 . 書(shū)名 . 出版社 . 出版日期 1.張樹(shù)兵 Visual 北京清華大學(xué)出版社 1999 年 4 月 2.翁正科 北京清華大學(xué)出版社 1995 年 5 月 3.劉云生數(shù)據(jù)庫(kù)系統(tǒng)概論武漢華中理工大學(xué)出版社 1996 年 5 月 附錄(主要窗體的源代碼) 主窗體的源代碼: Private Sub exit_Click() End End Sub Private Sub file_Click() End Sub Private Sub Form_Load() Left = ( Width) \ 2 Top = ( Height) \ 2 End Sub Private Sub jiangui_Click() End Sub Private Sub setup_Click() End Sub Private Sub zhujuan_Click() End Sub 文件錄入窗體的源代碼: Dim WithEvents adoPrimaryRS As Recordset Private Sub Combo1_Click() = End Sub Private Sub Command1_Click() = (文件號(hào) ) = (文件名 ) = (作者 ) = (內(nèi)容摘要 ) End Sub Private Sub Command10_Click() Unload Me End Sub Private Sub Command11_Click() Dim db As Connection Set db = New Connection = adUseClient PROVIDER=。Data Source=。 Set adoPrimaryRS = New Recordset a = b = select 文件號(hào) ,文件名 ,作者 ,入庫(kù)日期 ,狀態(tài) ,內(nèi)容摘要 from file where amp。 a amp。 like 39。% amp。 b amp。 %39。, db, adOpenStatic, adLockOptimistic Set = adoPrimaryRS End Sub Private Sub Command12_Click() = False = True = True End Sub Private Sub Command13_Click() Dim i As Integer, j As Integer Dim xlapp As Dim xlbook As Dim xlsheet As Set xlapp = CreateObject() = True Set xlbook = Set xlsheet = (1) (1, 1) = 文件號(hào) (1, 2) = 文件名 (1, 3) = 作者 (1, 4) = 入庫(kù)日期 (1, 5) = 是否入卷 (1, 6) = 內(nèi)容摘要 For i = 0 To 1 For j = 0 To 1 = i = j (i + 2, j + 1) = Next j Next i Set xlapp = Nothing Set xlbook = Nothing End Sub Private Sub Command2_Click() If Then MsgBox (已經(jīng)是第后一條記錄了! ) Else = (文件號(hào) ) = (文件名 ) = (作者 ) = (內(nèi)容摘要 ) End If End Sub Private Sub Command3_Click() If Then MsgBox (已經(jīng)是第一條記錄了! ) Else = (文件號(hào) ) = (文件名 ) = (作者 ) = (內(nèi)容摘要 ) End If End Sub Private Sub Command4_Click() = (文件號(hào) ) = (文件名 ) = (作者 ) = (內(nèi)容摘要 ) End Sub Private Sub Command5_Click() If = 添加 Then = 保存 = True = True = True = True = = = = Else (文件號(hào) ) = (文件名 ) = (作者 ) = (內(nèi)容摘要 ) = (入庫(kù)日期 ) = Date (狀態(tài) ) = 否 = 添加 = False = False = False = False End If End Sub Private Sub Command6_Click() If = 編輯 Then = 更新 = True = True = True = True Else (文件號(hào) ) = (文件名 ) = (作者 ) = (內(nèi)容摘要 ) = = False = False = False = False End If End Sub