【正文】
缺?。┊?dāng) EOF 字符找到時(shí) OnComm 事件不被激活。 說明:當(dāng) EOFEnable 屬性設(shè)置為 False,OnComm 控件將不在輸入流中尋找 EOF 字符。4 監(jiān)控系統(tǒng)的程序設(shè)計(jì)登陸界面是監(jiān)控系統(tǒng)的登陸界面,農(nóng)網(wǎng)低壓監(jiān)控系統(tǒng)不是所有人都可以登陸的,這需要專業(yè)人員來操作,而登陸界面的一些權(quán)限就是防止非操作人員登陸,進(jìn)而避免了一些重要參數(shù)的丟失與改動(dòng),給監(jiān)控系統(tǒng)造成不必要的損失。總而言之登陸界面是非常有必要的。如圖圖2所示圖1:農(nóng)電網(wǎng)低壓配電上位機(jī)測控系統(tǒng)登錄界面圖2:輸入密碼界面當(dāng)密碼正確后通過如下代碼調(diào)出數(shù)據(jù)跟新界面:Private Sub cmdCancel_Click() LoginSucceeded = False End Sub在數(shù)據(jù)跟新界面出現(xiàn)的同時(shí)登錄界面隱藏。為了防止他人隨意更改數(shù)據(jù)庫的數(shù)據(jù),使得監(jiān)控系統(tǒng)不能正常工作。因此在進(jìn)行數(shù)據(jù)跟新之前介入一個(gè)登錄對(duì)話框輸入口令,通過判斷口令的正確性來判斷使用者是否有資格對(duì)數(shù)據(jù)庫進(jìn)行修改。這樣大大加強(qiáng)了監(jiān)控系統(tǒng)的安全性,同時(shí)也使得數(shù)據(jù)庫的跟新直接關(guān)系到操作人員身上,如果有誤操作或跟新時(shí)數(shù)據(jù)有錯(cuò)誤則能夠直接追溯到操作人員,使得事故責(zé)任明確化。具體代碼如下:Option ExplicitPublic LoginSucceeded As BooleanPrivate Sub Command1_Click() Static user As String user = Select Case user Case 鄭浩 39。檢查正確的密碼 If Text2 = Then MsgBox 請(qǐng)輸入密碼, , 登錄 39。將代碼放在這里傳遞 39。成功到 calling 函數(shù) 39。設(shè)置全局變量時(shí)最容易的 ElseIf Text2 = 0 Then LoginSucceeded = True Else MsgBox 密碼錯(cuò)誤,請(qǐng)重新輸入密碼, , 登錄 SendKeys {Home}+{End} End If Case 39。檢查是否有用戶輸入 MsgBox 請(qǐng)輸入用戶名, , 登錄 SendKeys {Home}+{End} End SelectEnd SubPrivate Sub Command2_Click() 39。設(shè)置全局變量為 false 39。不提示失敗的登錄 LoginSucceeded = False Unload Me End Sub其中ElseIf Text2 = 0 Then LoginSucceeded = True Else是用于判斷密碼的,工作人員可以自行設(shè)置密碼,也可定期跟新密碼使得登錄的安全性得到提高,同時(shí)也防止密碼的泄露。監(jiān)控界面一部分是監(jiān)控?cái)?shù)據(jù)值的顯示,一部分是監(jiān)控?cái)?shù)據(jù)值的修改其中數(shù)據(jù)值的顯示利用了Ado控件的數(shù)據(jù)綁定功能,文本框的顯示數(shù)據(jù)功能,以及命令按鈕。通過單擊命令按鈕來控制顯示的數(shù)據(jù)值,當(dāng)監(jiān)控人員需要調(diào)看數(shù)據(jù)時(shí)不需要再次打開數(shù)據(jù)庫,可以同過命令按鈕“上一條”“下一條”來調(diào)看數(shù)據(jù),同時(shí)可已通過刷新按鈕來顯示當(dāng)前數(shù)據(jù)。如圖3所示圖3:監(jiān)控界面Private Sub Command5_Click()Static h Dim nums, i, j = select 電壓 電流 功率因數(shù) 有功 無功 電容投切組 日期 If 0 Then 39。當(dāng)記錄大于零時(shí) 39。移到最后一條記錄 nums = 39。給nums賦值 If h = nums Then MsgBox 記錄已經(jīng)到第一條! h = 0 End If ReDim arrValues(1 To nums, 1 To 4) 39。定義動(dòng)態(tài)數(shù)組 For i = 1 To nums 39。給數(shù)組賦值 arrValues(i, 1) = amp。 (時(shí)間) arrValues(i, 2) = amp。 (電壓) arrValues(i, 3) = amp。 (電流) arrValues(i, 4) = amp。 (功率因數(shù)) For j = 1 To 4 Text1(j 1).Text = arrValues(h + 1, j) Next j Next i h = h + 1 End IfEnd Sub以上代碼用于進(jìn)行上一條數(shù)據(jù)的查詢,單擊上一條時(shí)數(shù)據(jù)自動(dòng)顯示到數(shù)據(jù)庫的最后一組數(shù)據(jù),每單擊一次按鈕數(shù)據(jù)顯示上一條數(shù)據(jù)知道第一條數(shù)據(jù)為止。此時(shí)跳出對(duì)話框顯示記錄已到第一條。這段代碼用于數(shù)據(jù)庫的賦值,通過建立一個(gè)二維數(shù)組將數(shù)據(jù)庫中固定行固定列的數(shù)據(jù)給與數(shù)組然后通過下面的代碼顯示到相應(yīng)的文本框中:校驗(yàn)和子程序Function check_sum(x As String) As String 39。校驗(yàn)和函數(shù) Dim i As Long, n As Integer Dim h As String Dim s As String Dim a As String h = 0 s = Replace(x, , ) 39。用于將文本框中的空格去掉 n = Len(s) If n Mod 2 0 Then s = MsgBox(請(qǐng)檢查輸入偶數(shù)之節(jié)為偶數(shù)?, vbExclamation, 警告) Exit Function End If For i = 1 To n Step 2 a = Val(amp。h amp。 Mid(s, i, 2)) h = h + Val(a) Next i check_sum = Right(Hex(h), 2) End FunctionFunction strHex(x As String) As Boolean 39。判斷是否為十六進(jìn)制數(shù) If Len(x) 0 Then strHex = Not (x Like *[!09AFaf]*) Else strHex = False End IfEnd Function圖4:數(shù)據(jù)修改界面數(shù)據(jù)傳輸界面如圖圖6所示圖5數(shù)據(jù)傳輸界面圖6數(shù)據(jù)傳輸界面結(jié)束語選題時(shí),農(nóng)網(wǎng)低壓監(jiān)控系統(tǒng)讓我眼睛一亮,這是一個(gè)具有超級(jí)現(xiàn)實(shí)意義的系統(tǒng),有很強(qiáng)的實(shí)用型,引起了我的興趣,毫不猶豫的選擇了它。咋一接觸,發(fā)現(xiàn)它并沒有開始想象的讓人心動(dòng),它的核心需要數(shù)據(jù)庫知識(shí),這都是從來沒有學(xué)過的,困難?。?!為自己的選擇后悔,但他的困難又激發(fā)了我征服她它的欲望,對(duì)他的的編程就如同是一條荊棘之路。每一點(diǎn)都需要學(xué)習(xí)因?yàn)閺奈唇佑|過數(shù)據(jù)庫、報(bào)表,從頭開始。年前學(xué)弟基礎(chǔ)也有部分遺忘,讓我的編程難上加難。讓我一度不知所措、急躁不安。前幾天僅僅完成了用戶的管理部分,后面的硬骨頭毫無進(jìn)展。僅僅實(shí)時(shí)監(jiān)控的知識(shí)就讓我查閱了兩天。初步學(xué)會(huì)了控件的使用。我班的付及一步一步腳踏實(shí)地地做,不會(huì)的就查書,在我之前就做好了用戶管理的數(shù)據(jù)庫,讓我新生敬意,也讓我很是慚愧,感覺自己太不用功了。第一次階段性檢查,我做的不好,成績不高,我暗下決心一定要努力做的盡可能完美,取得一個(gè)較好的成績。這次vb課程設(shè)計(jì) ,我收獲頗豐。首先要有一個(gè)完整的規(guī)劃,并且按照規(guī)劃一步一步去做 ,不然到最后什么都做不了。學(xué)習(xí)是永恒的,不知道的太多太多了,唯有不斷的學(xué)習(xí) 才能勝任自己的工作。這次編程,許多都是我沒有學(xué)過的,都需要自己一點(diǎn)一點(diǎn)的去學(xué)習(xí)。不懂的地方就要問,“三人行則必有我?guī)熝伞?,問老師,問同學(xué)。致謝本論文是在我的導(dǎo)師高本鋒的親切關(guān)懷和悉心指導(dǎo)下完成的。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地感染和激勵(lì)著我。從課題的選擇到項(xiàng)目的最終完成,高老師都始終給予我細(xì)心的指導(dǎo)和不懈的支持。,陳老師在學(xué)業(yè)上給我以精心指導(dǎo),在此謹(jǐn)向高老師致以誠摯的謝意和崇高的敬意。 在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請(qǐng)接受我誠摯的謝意!最后我還要感謝培養(yǎng)我長大含辛茹苦的父母,謝謝你們!參考文獻(xiàn)[1]劉凡馨,Visual Basic程序設(shè)計(jì)教程,清華大學(xué)出版社。[2]谷水清,配電系統(tǒng)自動(dòng)化,中國電力出版社。[3]龔沛曾,楊志強(qiáng),陸慰民,Visual Basic程序設(shè)計(jì)教程(第三版),高等教育出版社。[4]胡西川,Visual Basic程序設(shè)計(jì)理論與實(shí)踐,中國電力出版社。[5]朱從旭,Visual Basic程序設(shè)計(jì)實(shí)驗(yàn)與實(shí)踐指導(dǎo),清華大學(xué)出版社。[6]安劍,鞏建華,Visual Basic編程之道,人民郵電出版社。33