VFP客房管理系统 第2页
do form kfgl\form\kfyd
在“住宿登记”按钮的Click事件中添加以下代码:
do form kfgl\form\zsdj
在“退宿结帐”按钮的Click事件中添加以下代码:
do form kfgl\form\tsjz
在“住宿查询”按钮的Click事件中添加以下代码:
do form kfgl\form\zsquery
在“客房查询”按钮的Click事件中添加以下代码:
do form kfgl\form\kfquery
在“房态查看”按钮的Click事件中添加以下代码:
do form kfgl\form\fangtaiquery
在“宿费提醒”按钮的Click事件中添加以下代码:
do form kfgl\form\sftx
在“客房信息”按钮的Click事件中添加以下代码:
do form kfgl\form\kfmanage
根据用户的使用权限,设置按钮是否有效。在vcxmain1类的Init事件中添加以下代码:
if purview>4 or pqtgl=.f.
this.parent.vcxmain1.kfyd.enabled=.f.
this.parent.vcxmain1.zsdj.enabled=.f.
this.parent.vcxmain1.tsjz.enabled=.f.
else
this.parent.vcxmain1.kfyd.enabled=.t.
this.parent.vcxmain1.zsdj.enabled=.t.
this.parent.vcxmain1.tsjz.enabled=.t.
endif
if purview>4 OR pcxtj=.f.
this.parent.vcxmain1.zscx.enabled=.f.
this.parent.vcxmain1.sftx.enabled=.f.
else
this.parent.vcxmain1.zscx.enabled=.t.
this.parent.vcxmain1.sftx.enabled=.t.
endif
if purview>4 OR pkfgl=.f.
this.parent.vcxmain1.kfcx.enabled=.f.
this.parent.vcxmain1.ftck.enabled=.f.
else
this.parent.vcxmain1.kfcx.enabled=.t.
this.parent.vcxmain1.ftck.enabled=.t.
endif
if purview>4 OR pjcinfo=.f.
this.parent.vcxmain1.kfinfo.enabled=.f.
else
this.parent.vcxmain1.kfinfo.enabled=.t.
endif
在 vcxmain1类的“退出”按钮的Click事件中添加以下代码:
quit
4.2 系统登录界面设计
用户进入系统前,必须通过系统登录进入主程序界面,系统登录界面主要用于确认用户的身份及使用权限,并且可对系统信息起到保密作用。系统登录界面如图3所示。若图片无法显示请联系QQ3249114
图3 系统登录界面运行结果
1.表单设计
(1)在客房管理系统项目中,添加一个新表单,名称为Admin。
(2)在表单中添加Combo控件、Text控件、Label控件、Command控件、Image控件。
(3)重要控件属性如表1所示。
表1 重要控件的重要属性及值
控件名 |
属性 |
值 |
Combo1 |
RowSource RowSourceType |
tabpurview.操作员姓名 6-字段 |
Text1 |
PasswordChar |
* |
2.代码设计
定义全局变量cn,manager,cn存放输入操作员或密码的次数,当cn大于3时,将自动退出系统。manager存放操作员姓名,在系统中应用到操作员姓名时,系统自动添加。
在表单的Init事件中添加以下代码:
public cn ,manager &&定义全局变量
cn=0 &&给全局变量赋初值
在表单的Resize事件中添加根据用户选择操作员所拥有的权限级别为全局变量赋值的代码。
purview=val(alltrim(tabpurview.权限级别))
pqtgl=tabpurview.前台管理
pkfgl=tabpurview.客房管理
pcxtj=tabpurview.查询统计
pgzgl=tabpurview.挂帐管理
pjcinfo=tabpurview.基础信息设置
psyscsh=tabpurview.系统初始化
psyswh=tabpurview.系统维护
在“确定”按钮的Click事件中添加以下代码实现判断操作员和密码是否正确的功能。如果操作员或密码不正确,将提示重新输入,三次后仍不正确,系统将自动退出。
public manager &&定义全局变量
manager=alltrim(thisform.combo1.value)
use kfgl\database\tabpurview &&打开数据表
cname=alltrim(thisform.Combo1.value)
ppassword=alltrim(thisform.text1.value)
set order to 操作员姓名 &&指定操作员姓名为控制索引
if empty(操作员姓名)
thisform.resize &&执行表单的Resize事件
manager=alltrim(thisform.combo1.displayvalue)
store .t.to pqtgl,pkfgl,pcxtj,pgzgl,pjcinfo,psyscsh,psyswh
do form form\fdesktop &&调入表单
thisform.release
else
seek cname &&快速查询
set exact on &&设置字符精确比较
if alltrim(tabpurview.操作员姓名)!=cname
cn=cn+1
cMessagetitle='系统登录'
cMessagetext='操作员错误,请重新输入!'
nDialogtype=4+32
nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
do case
case nanswer=6 &&选择“是”时的操作
thisform.combo1.value=''
thisform.combo1.setfocus
case nanswer=7 &&选择“否”时的操作
messagebox('不要乱来!',48, '系统登录')
thisform.release &&释放表单
endcase
if cn=3
thisform.release
endif
else
if alltrim(tabpurview.密码)!=ppassword
cn=cn+1
cmessagetitle='系统登录'
cmessagetext='密码错误,请重新输入!'
ndialogtype=4+32
nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
do case
case nanswer=6 &&当用户单击“是”按钮
thisform.text1.value=''
thisform.text1.setfocus
case nanswer=7
messagebox('不要乱来!',48, '系统登录')
thisform.release
endcase
if cn=3
thisform.release
endif
else
thisform.resize &&执行表单的Resize事件
manager=alltrim(thisform.combo1.displayvalue)
do form form\fdesktop
thisform.release
endif
endif
endif
set exact off &&设置字符非精确比较
在“取消”按钮的Click事件中添加以下代码:
cmessagetitle='系统登录'
cmessagetext='真的想要退出吗?'
nDialogtype=4+32
nanswer=messagebox(cMessagetext,nDialogtype,cMessagetitle)
if nanswer=6
thisform.release &&释放表单
endif
4.3 客房信息设计
用户进入系统后,单击主菜单基础信息设置下的客房信息子菜单选项,进入客房信息界面时可以通过查询条件查询客房基本信息,并以文本框和列表两种方式显示客房信息。客房信息表单运行结果如图4所示。