电竞比分网-中国电竞赛事及体育赛事平台

分享

VFP設(shè)計窗口登錄

 happyngkmw 2013-01-26

呵呵。我有兩種電常用的方法,我給你貼一種我最常用的出來哈(我以前兩天做的一個超市進銷存管理系統(tǒng)為列):

1.在“超市數(shù)據(jù)庫”數(shù)據(jù)庫中建立數(shù)據(jù)表“用戶表”,設(shè)置如下圖:

用戶名設(shè)為主索引。如果你要使用用戶權(quán)限,則可以保留用戶類型字段,如果不用那就去掉不要就是了。

2.登陸界面:

建立一個新表單

表單Unload代碼:USE

表單數(shù)據(jù)環(huán)境用添加“用戶表”數(shù)據(jù)表,并且將插入的表屬性中的:Exclusive值改為“真”值。如下圖

將數(shù)據(jù)表中的兩個字段拖入表單中并建立確認及取消兩個按鈕

將txtUserPwd文本框的Password屬性改為“*”。(引號不要)。這樣輸入的密碼就以*顯示了

編寫確定按鈕的Click代碼:

IF ALLTRIM(thisform.txtUserName.Value) == ''
  MessageBox("請輸入用戶名")
  RETURN
ENDIF
IF ALLTRIM(thisform.txtUserPwd.Value) == ''
  MessageBox("請輸入密碼")
  RETURN
ENDIF
SELECT 用戶表
&&查找指定用戶名為的記錄

public UserName, UserType &&定義全局變量,最好是在主程序中進行定義
Locate For Allt(用戶名)=Allt(thisform.txtUserName.Value)
If Found() == .T. &&如果找到
  If Allt(密碼) == Allt(thisform.txtUserPwd.Value)  &&比較密碼,成功則進入
    MessageBox("歡迎光臨", 64, "提示信息")
    UserName = 用戶名
    UserType = 用戶類型

    &&這里添加你要運行語句
    release thisform
  Else    &&比較密碼不成功
    MessageBox("密碼不正確", 16, "錯誤提示")
  Endif
Else            &&沒有找到指定用戶
    MessageBox("用戶名不存在", 16, "錯誤提示")

Endif

 

編寫取消按鈕的Click代碼:

RELEASE thisform
ON SHUTDOWN Do OnQuit
quit

 

這就是登陸表單哈。

 

注意。登陸表單最好和主程序交互編寫為最好。

主程序:

SET TALK OFF     &&關(guān)閉對話
SET ESCAPE OFF     &&關(guān)閉ESCAPE鍵
SET EXACT ON       &&打開完全匹配
SET EXCLUSIVE ON    &&打開獨占
SET CONSOLE ON     &&將輸出結(jié)果到發(fā)送到Visual FoxPro主窗口或當前的活動窗口
SET DATE TO SHORT    &&設(shè)置長日期
SET SCORE OFF     &&關(guān)閉分值欄
SET SAFETY OFF     &&關(guān)閉安全提示
SET STATUS BAR OFF    &&關(guān)閉系統(tǒng)提示欄
SET CENTURY ON     &&打開世紀開關(guān)
SET DELETED ON     &&屏閉刪除項
SET SYSMENU OFF    &&關(guān)閉系統(tǒng)菜單
SET NOTIFY OFF     &&關(guān)閉提示
&&設(shè)置系統(tǒng)窗口屬性
_SCREEN.MaxButton = .F.      &&取消最大化按鈕
_SCREEN.MaxWidth = 780      &&設(shè)置最大寬度
_SCREEN.MaxHeight = 600      &&設(shè)置最大高度
_SCREEN.Caption = "超市進銷存管理系統(tǒng)"   &&設(shè)置窗口標題
_SCREEN.Picture = 'img\hr.bmp'        &&設(shè)置窗口背景圖片
_SCREEN.AutoCenter = .T.     &&指定表單初次顯示時,自動位于主窗口中央
&&定義全局變量
public UserName, UserType
SET PATH TO DATA
&&打開菜單
Do mymenu.mpr
Do Form Form\登陸.scx
READ EVENTS
Procedure OnQuit
  CLEAR EVENTS
  CLOSE ALL
  QUIT
Endproc

如果使用了這樣的主程序,那么在登陸表單的確定中就不用再定義全局變量以及運行的語句了,都放主程序中進行跳轉(zhuǎn)。

最后效果是:如果用戶名不正確,會提示用戶名不正確,如果用戶名正確,密碼不正確,則會提示密碼錯誤。用戶名及密碼都正確則執(zhí)行定義的語句。

補充回答:

給你看看效果哈:

1.錯誤的用戶名:

2.錯誤的密碼:

3.用戶名密碼都正確:

呵呵。。這是幫別人做的畢業(yè)做業(yè)哈。所以把名字擋住呵。

簡單/NO平淡 
 
回答采納率:44.7% 2010-07-18 05:10

專家的回答

假設(shè)密碼是 123456

 

(我看不到你的圖,自己設(shè)計了一個,一個文本框、一個命令按鈕、一個標簽)

初始界面:

 

 

 

在Command1的Click事件過程中寫代碼:

 

if alltrim(thisform.text1.value)="123456"
 messagebox("歡迎使用本系統(tǒng)!")
else
 messagebox("用戶名或密碼錯誤,請重新輸入!")
endif

 

 

效果圖:

 

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多