【正文】
l, silverbacked hairbrush lying on the dressing table. “ Thanks,” said Harry, reaching out to place a finger on it, ready to leave. “ Wait a moment,” said Hagrid, looking around. “Harry, where?s Hedwig?” “ She… she got hit,” said Harry. The realization crashed over him: He felt ashamed of himself as the tears stung his eyes. The owl had been his panion, h is one great link w ith the magical world whenever he had been forced to return to the Dursleys. Hagrid reached out a great hand and patted him painfully on the shoulder. “ Never mind,” he said gruffly, “Never mind. She had a great old life – ” “ Hagrid!” said Ted Tonks warningly, as the hairbrush glowed bright blue, and Hagrid only just got his forefinger to it in time. With a jerk behind the navel as though an invisible hook and line had dragged him forward, Harry was pulled into nothingness, spinning uncontrollably, his finger glued to the Portkey as he and Hagrid hurtled away from Mr. Tonks. Second later, Harry?s feet slammed onto hard ground and he fell onto his hands and knees in the yard of the Burrow. He heard screams. Throwing aside the no longer glow ing hairbrush, Harry stood up, swaying slightly, and saw Mrs. Weasley and Ginny running down the steps by the back door as Hagrid, who had also collapsed on landing, clambered “ The Death Eaters were waiting for us,” Harry told her, “We were surrounded the moment we took off – they knew it was tonight – I don?t know what happened to anyone else, four of them chased us, it was all we could do to get away, and then Voldemort caught up with us – ” He could hear the selfjustifying note in his voice, the plea for her to understand why he did not know what had happened to her sons, but – “ Thank goodness you?re all right,” she said, pulling him into a hug he did not feel he deserved. “ Haven?t go? any brandy, have yeh, Molly?” asked Hagrid a little shakily, “Fer medicinal purposes?” 41 She could have summoned it by magic, but as she hurried back toward the crooked house, Harry knew that she wanted to hide her face. He turned to Ginny and she answered his unspoken plea for information at o。 ● 有些繳費(fèi)程序可能不符合高校繳費(fèi)的程序。由于本人時(shí)間和能力原因,所有只是制作了一個(gè)單機(jī)版的學(xué)生繳費(fèi)注冊(cè)系統(tǒng)。 統(tǒng)計(jì)和報(bào)表功能的不足 統(tǒng)計(jì)報(bào)表功能模塊的不足 統(tǒng)計(jì)報(bào)表功能模塊雖然功能已經(jīng)很相對(duì)完善,但是由于沒有進(jìn)行深入的調(diào)查和研究,必定還有許多不足之處,下面是我自己考慮到的不足之處,由于沒有時(shí)間和能力來完善,在這里先列出來。為了提高本系統(tǒng)的通用性,在數(shù)據(jù)操作功能模塊作了很多能提高系統(tǒng)通用性的操作。 34 第五章 數(shù)據(jù)統(tǒng)計(jì)及報(bào)表產(chǎn)生功能模塊特點(diǎn)與不足 數(shù)據(jù)統(tǒng)計(jì)以及報(bào)表產(chǎn)生功能是本系統(tǒng)明顯體現(xiàn)價(jià)值的一個(gè)模塊,用戶使用本系統(tǒng)的只要目的是方便管理和瀏覽查閱學(xué)生的繳費(fèi)情況。 , vbOKOnly + vbInformation, 信息提示 39。 , vbOKOnly + vbInformation, 信息提示 Select * from 繳費(fèi)信息表 where amp。Data Source= amp。 32 圖 單條件報(bào)表 選擇好報(bào)表?xiàng)l件,系統(tǒng)彈出操作界面供用戶使用,如下圖 所示 。Persist Security Info=False = adUseClient strconn_con2 strconn_con1 = Provider=。 amp。 我們還可以看到,界面的下部分有統(tǒng)計(jì)單位詳細(xì)的信息,思路上是將滿足統(tǒng)計(jì)條件的內(nèi)容逐列的排下來,然后從頭到尾依次顯示在對(duì)應(yīng)的控件上,用戶可以通過方向鍵來對(duì)每個(gè)單位進(jìn)行瀏覽。工具欄里一些常用的功能,是為了操作方便才設(shè)計(jì)的。點(diǎn)擊“顯示所有”按鈕顯示所有記錄。這是用戶進(jìn)行操作的主要界面,各種功能都集中在上面。Data Source= amp。Data Source= amp。 amp。 amp。Data Source= amp。 在統(tǒng)計(jì)部分,按照不同的統(tǒng)計(jì)單位,系統(tǒng)分為按全校、按院系、按專業(yè)、按班級(jí)分別進(jìn)行統(tǒng)計(jì)。 圖 ACCESS的初始界面 ( 2) 使用設(shè)計(jì)器創(chuàng)建表,設(shè)計(jì)器界面如下圖 所示。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理流程,組成一份詳細(xì)的數(shù)據(jù)字典,為下一步的具體設(shè)計(jì)做好充分的準(zhǔn)備。每個(gè)控件有工具箱中的一個(gè)工 具圖標(biāo)來表示,如圖 所示。 圖 資源管理器窗口 屬性窗口和工具箱窗口 1 屬性窗口 屬性窗口主要針對(duì)窗體和控件設(shè)置的。所以代碼編譯窗口對(duì)于 VB 來說是最重要的一個(gè)窗口。 單擊“ Open(打開)”按鈕接受缺省設(shè)置,即新工程是個(gè) 32 位的 Visual Basic程序。 6 對(duì)象的連接與嵌入( OLE) 對(duì)象鏈接與嵌入將每個(gè)應(yīng)用程序都看作時(shí)一個(gè)對(duì)象,將不同的對(duì)象鏈接起來,在嵌入某個(gè)應(yīng)用程序中,從而可以得到具有聲音、影像、動(dòng)畫、文字等各種信息的集合式的文件。一個(gè)對(duì)象可能會(huì)產(chǎn)生多個(gè)事件,每個(gè)事件都可以通過一段程序來響應(yīng)。 Visual Basic 提供了可視化設(shè)計(jì)工具,把 Windows 界面設(shè)計(jì)的復(fù)雜性“封裝”起來 ,開發(fā)人員不必為界面設(shè)計(jì)而編寫大量程序代碼,只需按設(shè)計(jì)要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫出各種“部件”,即圖形對(duì)象,并設(shè)置這些圖形對(duì)象的屬性,大大提高了程序員的編程效率。在 Visual Basic 基本特點(diǎn)中,介紹了可視化設(shè)計(jì)、事件驅(qū)動(dòng)編程、面向?qū)ο蟮某绦蛟O(shè)計(jì)等。 C 統(tǒng)計(jì)報(bào)表產(chǎn)生功能模塊: 數(shù)據(jù)統(tǒng)計(jì)以及報(bào)表產(chǎn)生 統(tǒng)計(jì)主要是根據(jù)用戶不同的需求對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),分別有以全校、系別、班級(jí)為單位進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)的結(jié)果以圖的方式顯示出來。但隨著各個(gè)學(xué)校的體制改革和辦學(xué)規(guī)模的擴(kuò)大,收費(fèi)在學(xué)校的財(cái)務(wù)工作變得日益繁瑣,直接影響到了學(xué)校的日常辦學(xué)工作,所以加強(qiáng)收費(fèi)管理力度顯 得非常迫切。利用的是其強(qiáng)大的開發(fā)單機(jī)和 C/S 模式數(shù)據(jù)庫應(yīng)用程序功能。整個(gè)開發(fā)的過程中,我們使用的工具是 Microsoft 公司的 Visual Basic 。因此對(duì)于學(xué)校來講,收取此類費(fèi)用是很重要的,直接關(guān)系到學(xué)校的辦學(xué)。由于繳費(fèi)涉及到找零,需有自動(dòng)計(jì)算功能;實(shí)現(xiàn)繳費(fèi)日期的選擇輸入。在這一章中,主要介紹有關(guān) Visual Basic(以下簡稱 VB)程序語言的基本特點(diǎn)、基本概念。有時(shí)候,這種編程-編譯-修改的操作可能要反復(fù)多次,大大影響了軟件開發(fā)效率。 4 事件驅(qū)動(dòng)編程機(jī)制 Visual Basic 通過事件來執(zhí)行對(duì)象的操作。在應(yīng)用程序中,可以使用結(jié)構(gòu)化查詢語言 SQL數(shù)據(jù)標(biāo)準(zhǔn),直接訪問服務(wù)器上的數(shù)據(jù)庫,并提供了簡單的面向?qū)ο蟮目嗖僮髦噶詈投嘤脩魯?shù)據(jù)訪問的加鎖機(jī)制和網(wǎng)絡(luò)數(shù)據(jù)庫的 SQL 的編程技術(shù),為單機(jī)上運(yùn)行的數(shù)據(jù)庫提供了 SQL網(wǎng)絡(luò)接口,動(dòng)態(tài)數(shù)據(jù)交換( DDE)。在該對(duì)話框中選擇希望創(chuàng)建的工程類型(該對(duì)話框的精確內(nèi)容依賴于正在使用的 Visual Basic 版本)。 圖 窗體設(shè)計(jì)器窗口 2 代碼編輯窗口 代碼編輯是 VB 中主要的設(shè)計(jì)手段,設(shè)計(jì)出來的軟件實(shí)現(xiàn)的功能都源于代碼。此時(shí)如果單擊“ ”號(hào)方框,則變?yōu)檎郫B狀態(tài),方框內(nèi)變?yōu)椤埃碧?hào)。這些圖標(biāo)是 Visual Basic 應(yīng)用程序的構(gòu)件,稱為圖形對(duì)象或控件。這就要求數(shù)據(jù)庫結(jié)構(gòu)能夠充分的滿足各種信息的輸入和輸出。步驟主要有以下: ( 1) 點(diǎn)擊 ACCESS 圖標(biāo)打開,初始界面如下圖 。因此,該模塊將功能進(jìn)行了區(qū)分,只要包括了統(tǒng)計(jì)和報(bào)表產(chǎn)生兩個(gè)部分。 統(tǒng)計(jì)報(bào)表產(chǎn)生功能模塊 統(tǒng)計(jì)功能 報(bào)表產(chǎn)生功能 全校統(tǒng)計(jì) 院系統(tǒng)計(jì) 專業(yè)統(tǒng)計(jì) 班級(jí)統(tǒng)計(jì) 已繳報(bào)表 未繳報(bào)表 專業(yè)報(bào)表 班級(jí)報(bào)表 項(xiàng)目報(bào)表 年級(jí)報(bào)表 院系報(bào)表 院系報(bào)表 全校報(bào)表 專業(yè)報(bào)表 24 圖 繳費(fèi)系統(tǒng)登陸界面 圖 是登 陸過程的具體流程圖: 圖 登陸過程流程圖 模塊主要代碼 通用 代碼 Private yh As New Private conn_yh As New 確定 按鈕代碼: Private Sub Command1_Click() 用戶 登陸 驗(yàn)證 錯(cuò)誤 正確 驗(yàn)證超級(jí)用戶 超級(jí)用戶界面 普通用戶界面 權(quán)限提升 是 否 25 If adStateClosed Then Set yh = Nothing strconn_yh = Provider=。and 用戶密碼 =39。Persist Security Info=False = adUseClient strconn_yh Select * from 用戶表 where 用戶名 =39。, conn_yh, adOpenDynamic, adLockOptimistic End If If 0 Then 主窗口 .Show Unload Me Else If adStateClosed Then Set yh = Nothing strconn_yh = Provider=。, conn_yh, adOpenDynamic, adLockOptimistic Else strconn_yh = Provider=。, conn_yh, adOpenDynamic, adLockOptimistic 26 End If If 0 Then MsgBox 密碼錯(cuò)誤 Else MsgBox 用戶名錯(cuò)誤 End If End If End Sub 取消 按鈕代碼 Private Sub Command2_Click() Unload Me End Sub