呵呵。我有两种电常用的方法,我给你贴一种我最常用的出来哈(我以前两天做的一个超市进销存管理系统为列):
1.在“超市数据库”数据库中建立数据表“用户表”,设置如下图:
用户名设为主索引。如果你要使用用户权限,则可以保留用户类型字段,如果不用那就去掉不要就是了。
2.登陆界面:
建立一个新表单
表单Unload代码:USE
表单数据环境用添加“用户表”数据表,并且将插入的表属性中的:Exclusive值改为“真”值。如下图
将数据表中的两个字段拖入表单中并建立确认及取消两个按钮
将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 &&关闭对话
SET ESCAPE OFF &&关闭ESCAPE键
SET EXACT ON &&打开完全匹配
SET EXCLUSIVE ON &&打开独占
SET CONSOLE ON &&将输出结果到发送到Visual FoxPro主窗口或当前的活动窗口
SET DATE TO SHORT &&设置长日期
SET SCORE OFF &&关闭分值栏
SET SAFETY OFF &&关闭安全提示
SET STATUS BAR OFF &&关闭系统提示栏
SET CENTURY ON &&打开世纪开关
SET DELETED ON &&屏闭删除项
SET SYSMENU OFF &&关闭系统菜单
SET NOTIFY OFF &&关闭提示
&&设置系统窗口属性
_SCREEN.MaxButton = .F. &&取消最大化按钮
_SCREEN.MaxWidth = 780 &&设置最大宽度
_SCREEN.MaxHeight = 600 &&设置最大高度
_SCREEN.Caption = "超市进销存管理系统" &&设置窗口标题
_SCREEN.Picture = 'img\hr.bmp' &&设置窗口背景图片
_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
如果使用了这样的主程序,那么在登陆表单的确定中就不用再定义全局变量以及运行的语句了,都放主程序中进行跳转。
最后效果是:如果用户名不正确,会提示用户名不正确,如果用户名正确,密码不正确,则会提示密码错误。用户名及密码都正确则执行定义的语句。