摘要:登錄窗體在相關數(shù)據(jù)處理軟件開發(fā)中使用十分頻繁,其中最主要的是用戶合法性驗證,包括用戶名、密碼和用戶類型等信息的有效性驗證。該文就在Visual FoxPro環(huán)境下如何實現(xiàn)簡單的登錄窗體作了詳細論述。
關鍵詞:表單編程;用戶登錄;控件編程
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)03-626-02
Design and Implementation of User Login form Based on Visual FoxPro
HU Kai-hua,ZHANG Yu-jing,SHU Qi-liang
(Jingdezhen Ceramic Institute of Science and Technology Arts Institut, Jingdezhen 333001, China)
Abstract: User login form was used very frequent in the relevant data processing software development, the most important is the user Legality verification. Including the user name, password and user type validation, etc. In this paper, base on the Visual FoxPro environment, how to realize a simple login form were discussed in detail.
Key words: forms programming; user login; controls programming;
大多涉及數(shù)據(jù)庫內容的管理系統(tǒng)在使用之前都要求進行用戶的合法性檢驗,所以登錄界面的設計是大多應用軟件都會涉及到的開發(fā)內容,甚至現(xiàn)有的一些編程工具中還直接提供了登錄控件,以此提高登錄界面設計及開發(fā)的周期。該文在VF下從面向對象的角度制作一個簡單的登錄界面。
1 登錄流程圖
用戶在使用系統(tǒng)前,必須在獲得管理員分配的帳號后進行登陸。登陸過程首先驗證用戶帳號和密碼是否正確,然后判斷用戶類型。系統(tǒng)根據(jù)不同的用戶類型進入不同的用戶主界面。系統(tǒng)登陸流程圖如圖1所示。
2 設計及實現(xiàn)
2.1 用戶表設計
該表單會用到一個用戶表,用戶表中至少有用戶名和密碼兩個字段,表屬性如表1所示。
2.2 表單的設計
新建一個如圖2所示的表單,該表單中所用到的控件及其功能描述如表2所示。
2.3 VF中的messagebox函數(shù)
在該表單的程序實現(xiàn)過程中,在進行用戶登錄時的合法性檢驗時,會用到messagebox函數(shù),該函數(shù)可以顯示一個自定義的對話框。常用作提示之用,也可以作一些簡單的選擇,比如“確定”、“取消”等。
1) messagebox函數(shù)語法
MESSAGEBOX(提示信息[,對話框的屬型[,對話框窗口標題]])
2) 對話框圖標如表3所示。
3) 對話框按鈕設置方式如表4所示。
4) 對話框按鈕的返回值如表5所示。
2.4 編程實現(xiàn)
1) 登錄按鈕click事件代碼如下:
close table all*關閉所有數(shù)據(jù)表
if empty(thisform.text1.value) *判斷用戶名是否為空
messagebox(“用戶名不能為空”,64,“登錄提示”)
thisform.text1.setfocus *用戶名控件獲取焦點
Return*退出當前按鈕事件程序
endif
if empty(thisform.text2.value)
messagebox(\"密碼不能為空\",64,\"登錄提示\")
thisform.text2.setfocus
return
endif
use yonghubiao*打開用戶表
locate for 用戶名=alltrim(thisform.text1.value) AND 密碼=alltrim(thisform.text2.value)
if found() *判斷用戶名及密碼是否正確
*登錄成功,執(zhí)行相應操作
else
messagebox(\"用戶名或密碼不正確\",48,\"系統(tǒng)提示\")
endif
Use*關閉用戶表
2) 退出按鈕click事件代碼如下:
if messagebox(\"是否真要退出整個系統(tǒng)\",1+16+256,\"退出提示\")=1
thisform.release*釋放當前表單
endif
3) Timer控件Timer事件代碼如下:
Interval屬性用來決定每隔多長的時間要引發(fā)回送,其設置值的單位是毫秒,數(shù)值為1000表示1秒鐘間隔。
if thisform.label1.left thisform.label1.left=thisform.label1.left+5 else thisform.label1.left=0*文字慢慢出現(xiàn) endif 4 結束語 Visual FoxPro中提供了大量的命令供用戶使用,該實例中的用戶名和密碼驗證就是使用VF自身的Locate命令來實現(xiàn),另外還可以用SQL語句中的Select語句來實現(xiàn)。該登錄界面可以根據(jù)實際需求進行適當修改便可實現(xiàn)不同的用戶身份驗證功能。 參考文獻: [1] 張魯,VISUALF()XPR()6.0編程技巧與實例分析[M].北京:中國水利水電出版社,1999. [2] 索梅.VISUALF()XPRO6.o教程[M].北京:電子工業(yè)出版社,2002. [3] 楊紹增.中文Visual FoxPro應用系統(tǒng)開發(fā)教程[M].2版.北京:清華大學出版社,2008.