网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

VFP客房管理系统

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
VFP客房管理系统
摘要
【摘要】
随着改革开放步伐的加快,我国服务业取得了巨大的发展。而宾馆是我国的改革开放过程中起步最早的、开拓发展最快、收效最为明显、市场化程度高的服务行业之一。而随着信息科技的发展,传统的管理模式逐渐被信息化及数字化的管理模式所取代,如何得用先进的管理手段,提 高宾馆的管理水平,已成为宾馆行业的当务之急。面对信息时代的机遇和挑战,得用科技手段提高企业管理无疑是一条行之有效的途径。
客房管理系统的开发充分利用了信息技术提高了宾馆客房的管理水平、服务水平。系统实现了客房预定、住宿登记、宿费提醒、追加押金、调房登记、退房结帐、挂帐、查询统计等功能。其中宿费提醒可以在住宿费超过押金时预警,提示前台要客人补交押金,该功能可明显提高对住宿人员住宿的有效管理。将动态实时的住宿登记、客房调整、销售报表、追加押金等有机地联系在一起,对宾馆客房进行全方位的管理。
【关键词】客房管理系统
0  引言
随着我国经济的迅速发展,人们的生活水平有了明显的提高,假日经济和旅游经济已经成为人们的消费热点。各地也把旅游也当作本地经济发展的重要支柱之一,从而促进了宾馆酒店业的发展。同时,随着宾馆酒店越来越多,人们的要求越来越高,宾馆酒店的竞争也越来越激烈。如何在激烈的竞争中生存发展,是每个宾馆酒店必须面临的问题。对宾馆经营状况起决定作用的是宾馆的服务管理水平。如何利用先进的管理手段,提高宾馆的管理水平,已成为宾馆酒店也发展的当务之急。
客房管理系统的开发可以帮助系统管理员完成日常的客人入住及客人的退房信息的管理及查询等工作,大大提高了的工作效率。虽然计算机管理并不是宾馆管理走向成功的关键元素,但它可以最大限度地发挥准确、快捷、高效等作用,对宾馆的服务管理提供有力的支持。
1  需求分析
根据该宾馆的具体情况,系统主要的功能包括:
               前台管理:“客房预定”、“住宿登记”、“调房登记”、“追加押金”、“退房结帐”。
               客房管理:“客房查询”、“房态查看”。
               查询统计:“预定房查询”、“住宿查询”、“退宿查询”、“宿费提醒”。
               挂帐管理:“挂帐管理”、“客人结帐”。
               基础信息设置:“客房信息”、“客房类型信息”、“员工信息”、“挂帐单位信息”。
               系统初始化:“本单位定义”、“业务部门定义”、“操作员管理”、“权限设置”。
系统维护:“系统初始化”、“数据备份”、“数据恢复”。
2  总体设计
2.1  项目规划
客房管理系统主要是针对中小型的宾馆、酒店开发的客房管理系统,系统由前台管理、客房管理、查询统计、挂帐管理、基础信息设置、系统初始化、系统维护和帮助等几个功能模块组成,规划系统功能模块如下:
q         前台管理
前台管理:客房预定、住宿登记、调房登记、追加押金、退宿结帐和退出。
q         客房管理
客房管理:客房查询和房态查看。
q         查询统计
查询统计:预定房查询、住宿查询、退宿查询、宿费提醒。
q         挂帐管理
挂帐管理:挂帐查询和客人结帐。
q         基础信息设置
基础信息设置:客房信息、客房类型信息、员工信息和帐挂单位信息。
q         系统初始化
系统初始化:本单位定义、业务部分定义、操作员管理和权限设置。
q         系统维护
系统维护:系统初始化、数据备份和数据恢复。
q         帮助
帮助:帮助和关于本软件2部分。
2.2  系统功能结构
本系统共分7大部分、24个完整的功能模块。系统结构图如图1所示。若图片无法显示请联系QQ3710167
图1 客房管理系统结构图
2.3  设计目标
本系统主要是针对中小型的宾馆、酒店开发的的客房管理系统,主要实现可以下目标:
q         界面设计美观友好。
q         操作员可以随时修改自己的口令,并且不同的操作员设置不同的操作权限,以增强系统的安全性。
q         数据保密性强,为每个用户设置相应的权限级别。
q         信息查询灵活、方便、快捷,数据存储安全可靠。
q         能够实现数据备份和数据恢复,保证数据安全。
q         系统运行稳定,安全可靠。
3  系统设计
3.1  开发及运行环境
系统开发平台:Microsoft Visual FoxPro 6.0。
运行平台:Windows XP/ Windows 2000/ Windows 2003。
分辨率:最佳效果1024×768像素2  数据库设计。
1.数据库概要说明
数据库在一个管理系统中占居非常重要的地位,数据库结构设计的好坏将直接影响系统的效率和实现的效果。本系统采用的是Visual FoxPro自带的数据库,数据库文件名为Roommanage。
2.主要数据表的结构
数据库中的数据表请参见附录B。
4  主要功能模块设计
4.1  程序主界面的设计
程序启动后,在系统登录界面验证操作员密码后,将进入主程序界面。通过主程序界面可以执行相应权限的操作,并且通过选择主界面的菜单,来调用相应程序并进行相应操作。主程序界面如图2所示。若图片无法显示请联系QQ3249144
图2  程序主界面
1.表单设计
(1)创建一个标准项目,名称为客房管理系统,在该项目中添加一个新表单,名称为Fdesktop。
(2)在表单中插入名称为Vcxmain的ToolBar类,在类中添加Command控件、Image控件。
2.代码设计
在“客房预定”按钮的Click事件中添加以下代码:
 
VFP客房管理系统
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所示。若图片无法显示请联系QQ3710167
图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所示。
 
VFP客房管理系统
图4  客房管理表单运行结果
1.表单设计
(1)在客房管理系统项目中,添加一个新表单,名称为Kfmanage。
(2)在表单中添加Label控件、Combo控件、Text控件、Edit控件、Command控件、Commandgroup控件、PageFrame控件和Grid控件。
(3)重要控件属性如表2所示。
表2                         重要控件的重要属性及值





控件名

属性




Combo1

DisplayValue
RowSource
RowSourceType

房间号
房间号,房间类型,房态
1-值


Combo2

RowSource
RowSourceType
Style

All,like,=,>,<
1-值
2-下拉列表框
2.代码设计
在表单的Load事件中添加以下代码:
public cx,l     &&定义全局变量
cx=0
l=.f.
在表单的Resize事件中添加以下代码:
thisform.pageframe1.page1.text1.value=tabkfinfo.房间号    &&赋值给Text1等
thisform.pageframe1.page1.combo1.value=tabkfinfo.房间类型
thisform.pageframe1.page1.text3.value=tabkfinfo.价格
thisform.pageframe1.page1.combo2.value=tabkfinfo.房态
thisform.pageframe1.page1.text5.value=tabkfinfo.营业时间
thisform.pageframe1.page1.text6.value=tabkfinfo.备注
thisform.pageframe1.page1.text7.value=tabkfinfo.使用设置
thisform.pageframe1.page1.edit1.value=tabkfinfo.配置
L是全局变量,当L为.T.或.F.时,这个值会集体赋给相关控件的Enabled属性。这种写法其实将Init事件当成一个设相关控件是否有效的函数。在表单的Init事件中添加以下代码:
store l to thisform.pageframe1.page1.combo1.enabled=l
thisform.pageframe1.page1.combo2.enabled=l
thisform.pageframe1.page1.text5.enabled=l
thisform.pageframe1.page1.text6.enabled=l
thisform.pageframe1.page1.text7.enabled=l
thisform.pageframe1.page1.edit1.enabled=l
在combo2控件的InteractiveChange事件中添加以下代码:
if alltrim(thisform.combo2.value)="All"
   thisform.text1.value=''
   thisform.text1.enabled=.f.
else
   thisform.text1.enabled=.t.
endif
在“查询”按钮的Click事件中添加可以根据用户选择的条件查找记录的代码。
cx=0
cif=alltrim(thisform.combo1.displayvalue)
ccif=alltrim(thisform.combo2.displayvalue)
ctext=alltrim(thisform.text1.value)
if empty(ccif)
   messagebox('请输入查询条件!',48,'操作失败!')
   thisform.combo2.setfocus    &&Combo2获得焦点
else
     if empty(ctext)
        if ccif!="All"
           messagebox('请输入查询条件!',48,'操作失败!')
           thisform.text1.setfocus
        else
           select *;     &&选择所有字段
           from roommanage!tabkfinfo;     &&指定查询的数据库文件
           order by tabkfinfo.房间号;      &&查询结果升序排序
           into cursor lindeping  
           thisform.pageframe1.page2.grid1.recordsource='lindeping'  &&赋数据源
           lkfnumber=lindeping.房间号
           select tabkfinfo
           set order to 房间号    &&指定控制索引文件
           seek lkfnumber    &&快速查询
           thisform.resize   &&执行表单的Resize事件 
           thisform.pageframe1.page1.text1.enabled=.f.
           thisform.pageframe1.page1.text3.enabled=.f.
           l=.f.
           thisform.init    &&执行表单的Init事件
           thisform.commandgroup2.enabled=.t.
        endif
     else
        if thisform.combo2.displayvalue='like'
               MySQL=cif+" "+ccif+" '"+"%"+ctext+"%'"
            else
               MySQL=cif+" "+ccif+" '"+alltrim(thisform.text1.value)+"'"
            endif
            select * from roommanage!tabkfinfo where &MySQL.into cursor lindeping 
        go top
        if eof()
           go bottom
           messagebox('客房不存在',48,'信息窗口')
           thisform.commandgroup2.enabled=.f.
           thisform.commandgroup1.cmodify.enabled=.f.
           thisform.commandgroup1.cdel.enabled=.f.
           cx=1
        else
           lkfnumber=lindeping.房间号
           select tabkfinfo
           set order to 房间号
           seek lkfnumber
           thisform.resize   &&执行表单的Resize事件  
           thisform.pageframe1.page1.text1.enabled=.f.
           thisform.pageframe1.page1.text3.enabled=.f.
           l=.f.
           thisform.init    &&执行表单的Init事件
           thisform.commandgroup2.enabled=.t.
        endif 
        thisform.pageframe1.page2.grid1.recordsource='lindeping'
     endif
endif
thisform.commandgroup2.command1.setfocus
thisform.refresh
在页框控件的Init事件中添加以下代码:
thisform.pageframe1.page1.text1.enabled=.f.
thisform.pageframe1.page1.text3.enabled=.f.
l=.f.
thisform.init    &&执行表单的Init事件
thisform.resize     &&执行表单的Resize事件 
在“客房基本信息”选项卡的Activate事件中添加以下代码:
thisform.commandgroup1.csave.enabled=.f.
thisform.commandgroup1.ccancel.enabled=.f.
thisform.commandgroup1.cadd.enabled=.t.
thisform.commandgroup1.cexit.enabled=.t.
thisform.commandgroup1.cmodify.enabled=.t.
thisform.commandgroup1.cdel.enabled=.t.
thisform.commandgroup2.enabled=.t.
在“客房基本信息列表”选项卡的Activate事件中添加以下代码:
thisform.commandgroup1.csave.enabled=.f.
thisform.commandgroup1.ccancel.enabled=.f.
thisform.commandgroup1.cadd.enabled=.f.
thisform.commandgroup1.cmodify.enabled=.f.
thisform.commandgroup1.cdel.enabled=.f.
thisform.commandgroup1.cexit.enabled=.t.
thisform.commandgroup2.enabled=.f.
thisform.refresh
在edit1控件的KeyPress事件中添加以下代码:
if nKeycode=3
  thisform.commandgroup1.csave.setfocus
endif
在Combo1控件的Interactivechange事件中添加以下代码:
kftype=alltrim(thisform.pageframe1.page1.combo1.displayvalue)
select *;
from roommanage!tabkflx;
where 客房类型=kftype;
order by tabkflx.类型编号;
into cursor linshi
thisform.pageframe1.page1.text3.value=linshi.价格
在“|<”按钮的Click事件中添加以下代码:
go top        &&把记录指针定位到第一条记录
this.parent.command1.enabled=.f.
this.parent.command2.enabled=.f.
if cx=1
   this.parent.command3.enabled=.f.
   this.parent.command4.enabled=.f.
   thisform.commandgroup1.cmodify.enabled=.f.
   thisform.commandgroup1.cdel.enabled=.f.
else
   this.parent.command3.enabled=.t.
   this.parent.command4.enabled=.t.
endif
thisform.resize   &&执行表单的Resize事件     
thisform.refresh
在“<”按钮的Click事件中添加以下代码:
if cx=1
   messagebox('已是第一个记录',48,'信息窗口')
   this.parent.command1.enabled=.f.
   this.parent.command2.enabled=.f.
   this.parent.command3.enabled=.f.
   this.parent.command4.enabled=.f.
   thisform.commandgroup1.cmodify.enabled=.f.
   thisform.commandgroup1.cdel.enabled=.f.
   thisform.resize     &&执行表单的Resize事件  
else
   skip-1    &&记录指针向上移一条记录
   thisform.resize   &&执行表单的Resize事件  
   if bof()
      messagebox('已是第一个记录',48,'信息窗口')
      this.parent.command1.enabled=.f.
      this.parent.command2.enabled=.f.
      thisform.resize     &&执行表单的Resize事件  
   else
       this.parent.command1.enabled=.t.
       this.parent.command2.enabled=.t.
   endif
    this.parent.command3.enabled=.t.
    this.parent.command4.enabled=.t.
endif
thisform.refresh
 
VFP客房管理系统
在“>”按钮的Click事件中添加以下代码:
if eof()
   messagebox('已经是最后一条记录',48,'管理窗口')
   skip-1    &&记录指针向上移一条记录
   thisform.resize     &&执行表单的Resize事件  
   this.parent.command1.enabled=.f.
   this.parent.command2.enabled=.f.
   this.parent.command3.enabled=.f.
   this.parent.command4.enabled=.f.
   thisform.commandgroup1.cmodify.enabled=.f.
   thisform.commandgroup1.cdel.enabled=.f.
else
   skip     &&将把记录指针向下移一条记录
   thisform.resize     &&执行表单的Resize事件   
   if eof()
      messagebox('已经是最后一条记录',48,'管理窗口')
      skip-1    &&记录指针向上移一条记录
      thisform.resize    &&执行表单的Resize事件   
      this.parent.command3.enabled=.f.
      this.parent.command4.enabled=.f.
   else
      this.parent.command3.enabled=.t.
      this.parent.command4.enabled=.t.
   endif
   this.parent.command1.enabled=.t.
   this.parent.command2.enabled=.t.
endif
thisform.refresh
在“>|”按钮的Click事件中添加以下代码:
this.parent.command3.enabled=.f.
this.parent.command4.enabled=.f.
go bottom      &&记录指针移动到最后一条记录
if cx=1
   this.parent.command1.enabled=.f.
   this.parent.command2.enabled=.f.
   thisform.commandgroup1.cmodify.enabled=.f.
   thisform.commandgroup1.cdel.enabled=.f.
else
   this.parent.command1.enabled=.t.
   this.parent.command2.enabled=.t.
endif
thisform.resize     &&执行表单的Resize事件   
thisform.refresh
在“添加”按钮的Click事件中添加以下代码:
thisform.pageframe1.page1.text1.enabled=.t.     &&设置控件有效
thisform.pageframe1.page1.text3.enabled=.f.
l=.t.
thisform.init      &&执行表单的Init事件
*清空各文本框
thisform.pageframe1.page1.combo1.value=''
thisform.pageframe1.page1.text3.value=0
thisform.pageframe1.page1.combo2.value=''
thisform.pageframe1.page1.text5.value={//::}
thisform.pageframe1.page1.text6.value=''
thisform.pageframe1.page1.text7.value=''
thisform.pageframe1.page1.edit1.value=''
thisform.pageframe1.page1.text1.value=''
thisform.pageframe1.page1.text1.setfocus       &&Text1获得焦点
thisform.commandgroup1.cmodify.enabled=.f.
thisform.commandgroup1.cdel.enabled=.f.
thisform.commandgroup1.cexit.enabled=.t.
thisform.commandgroup1.ccancel.enabled=.t.
thisform.commandgroup1.csave.enabled=.t.
thisform.commandgroup1.cadd.enabled=.f.
thisform.pageframe1.page2.enabled=.f.
thisform.commandgroup2.enabled=.f.
thisform.command1.enabled=.f.
单击“保存”按钮,在客房信息表“Tabkfinfo”中查找该房间号,如果没有找到则将用户输入的信息保存到客房信息表“Tabkfinfo”中;如果找到则修改“Tabkfinfo”中的相应信息。具体代码如下:
在“保存”按钮的Click事件中添加以下代码:
*获得输入信息
kfnumber=alltrim(thisform.pageframe1.page1.text1.value)
fjlx=alltrim(thisform.pageframe1.page1.combo1.value)
price=thisform.pageframe1.page1.text3.value
ft=alltrim(thisform.pageframe1.page1.combo2.value)
yytime=thisform.pageframe1.page1.text5.value
cmemo=alltrim(thisform.pageframe1.page1.text6.value)
sysz=alltrim(thisform.pageframe1.page1.text7.value)
pz=alltrim(thisform.pageframe1.page1.edit1.value)
cmessagetitle='客房管理系统'
cmessagetext='确定要保存吗?'
ndialogtype=4+32
nAnswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
do case
se nAnswer=6
    if empty(kfnumber)=.t.     &&判断房间号是否为空
       messagebox('房间号不能为空',48,'操作失败!')
       thisform.resize     &&执行表单的Resize事件 
    else
       select tabkfinfo
       set order to 房间号
       seek kfnumber
       if!found()
         insert into tabkfinfo values(kfnumber,fjlx,price,ft,pz,sysz,yytime,cmemo)
          messagebox('数据保存完毕',48,'操作成功!')
       else
          cmessagetitle='客房管理系统'
          cmessagetext='客房已经存在,要修改吗?'
          ndialogtype=4+32
          nAnswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
          do case
             case nAnswer=6
           update tabkfinfo set 价格=price,房间类型=fjlx,房态=ft,营业时间=yytime,;
使用设置=sysz,备注=cmemo,配置=pz where 房间号=kfnumber 
                     messagebox('数据修改完毕',48,'操作成功!')
                case nanswer=7
                     thisform.resize     &&执行表单的Resize事件
             endcase
          endif
       endif
       thisform.pageframe1.page1.text1.enabled=.f.
       thisform.pageframe1.page1.text3.enabled=.f.
       l=.f.
       thisform.init    &&执行表单的Init事件
endcase
thisform.commandgroup1.cmodify.enabled=.t.
thisform.commandgroup1.cdel.enabled=.t.
thisform.commandgroup1.cexit.enabled=.t.
thisform.commandgroup1.ccancel.enabled=.f.
thisform.commandgroup1.csave.enabled=.f.
thisform.commandgroup1.cadd.enabled=.t.
thisform.pageframe1.page2.enabled=.t.
thisform.commandgroup2.enabled=.t.
thisform.command1.enabled=.t.
thisform.refresh
在“取消”按钮的Click事件中添加以下代码:
thisform.resize       &&执行表单的Resize事件
thisform.pageframe1.page1.text1.enabled=.f.      &&设置控件无效 
thisform.pageframe1.page1.text3.enabled=.f.
l=.f.
thisform.init    &&执行表单的Init事件
thisform.commandgroup1.cmodify.enabled=.t.
thisform.commandgroup1.cdel.enabled=.t.
thisform.commandgroup1.cexit.enabled=.t.
thisform.commandgroup1.ccancel.enabled=.f.
thisform.commandgroup1.csave.enabled=.f.
thisform.commandgroup1.cadd.enabled=.t.
thisform.pageframe1.page2.enabled=.t.
thisform.commandgroup2.enabled=.t.
thisform.command1.enabled=.t.
在“修改”按钮的Click事件中添加以下代码:
thisform.pageframe1.page1.text1.enabled=.f.
thisform.pageframe1.page1.text3.enabled=.t.
l=.t.
thisform.Init     &&执行表单的Init事件
thisform.refresh
thisform.commandgroup1.cmodify.enabled=.f.
thisform.commandgroup1.cdel.enabled=.f.
thisform.commandgroup1.cexit.enabled=.t.
thisform.commandgroup1.ccancel.enabled=.t.
thisform.commandgroup1.csave.enabled=.t.
thisform.commandgroup1.cadd.enabled=.f.
thisform.pageframe1.page2.enabled=.f.
thisform.commandgroup2.enabled=.t.
thisform.command1.enabled=.f.
在“删除”按钮的Click事件中添加以下代码:
kfnumber=alltrim(thisform.pageframe1.page1.text1.value)
cmessagetitle='客房管理系统'
cmessagetext='确定要删除吗?'
ndialogtype=4+32
nAnswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
do case
   case nAnswer=6
        use kfgl/database/tabkfinfo exclusive      &&以独占方式打开数据表
        dele from tabkfinfo where 房间号=kfnumber     &&逻辑删除记录
        dele from tabkfinfo where empty(房间号)
        pack     &&物理删除
        thisform.resize    &&执行表单的Resize事件
        thisform.pageframe1.page2.grid1.recordsource='tabkfinfo'
        messagebox('删除完毕',48,'操作成功!')
        thisform.refresh
endcase
4.4  退宿结帐设计
用户单击主菜单前台管理下的退宿结帐子菜单选项,进入退宿结帐界面。退宿结帐界面主要实现显示公司名称、网址、显示退宿帐号、住宿时间、操作员姓名以及完成客人退宿结帐的操作。退宿结帐表单运行结果如图5所示。
 

VFP客房管理系统
1.表单设计
(1)在客房管理系统的项目中,添加一个新表单,名称为Tsjz。
(2)在表单中添加Label控件、Combo控件、Text控件、Commandgroup控件。
(3)重要控件属性如表3所示。
表3                       重要控件的重要属性及值





控件名

属性




Combo1

RowSourceType
Style

6-字段
2-下拉列表


Text4

Format
InputMask

999999.99
2.代码设计
在表单的Resize事件中添加以下代码:
store .f. to thisform.combo1.enabled,thisform.combo2.enabled,thisform.combo3.enabled,;
thisform.combo4.enabled,thisform.combo5.enabled,thisform.text2.enabled,;
thisform.text3.enabled,thisform.text6.enabled,thisform.text7.enabled,;
thisform.text9.enabled,thisform.text10.enabled,thisform.text11.enabled,;
thisform.text12.enabled,thisform.text13.enabled,thisform.text14.enabled,;
thisform.text15.enabled,thisform.text16.enabled,thisform.text17.enabled,;
thisform.text18.enabled,thisform.text19.enabled,thisform.text20.enabled,;
thisform.text21.enabled,thisform.text22.enabled,thisform.text23.enabled    &&设置控件无效
在表单的Init事件中添加以下代码:
thisform.resize     &&执行表单的Resize事件
thisform.combo1.enabled=.f.
thisform.gzdw.visible=.f.    &&隐藏Gzdw
thisform.combo6.visible=.f.
thisform.commandgroup1.csave.enabled=.f.
thisform.commandgroup1.ccancel.enabled=.f.
thisform.commandgroup1.cadd.enabled=.t.
thisform.commandgroup1.cexit.enabled=.t.
在combo2控件的KeyPress事件中添加以下代码:
select tabkflx
if nKeyCode=13
  thisform.text8.setfocus
  thisform.text8.value=价格
endif
在Combo2控件的InteractiveChange事件中添加以下代码:
thisform.text8.value=tabkflx.价格
在“结帐”按钮的Click事件中添加以下代码:
store .t. to thisform.combo3.enabled,thisform.combo4.enabled,thisform.combo5.enabled,;
  thisform.combo6.enabled,thisform.text9.enabled,thisform.text11.enabled,;
  thisform.text13.enabled,thisform.text17.enabled,thisform.text22.enabled
store date() to thisform.text1.value,thisform.text9.value
store time() to thisform.text4.value,thisform.text11.value
thisform.text5.value=manager
store 0 to thisform.text8.value,thisform.text10.value,thisform.text16.value,;
  thisform.text18.value,thisform.text19.value,thisform.text20.value,;
  thisform.text22.value,thisform.text23.value
thisform.text17.value=100
store '' to thisform.text2.value,thisform.text3.value,thisform.text6.value,;
  thisform.text7.value,thisform.text12.value,thisform.text13.value,thisform.text14.value,;
  thisform.text15.displayvalue,thisform.text21.value,thisform.combo1.displayvalue,;
  thisform.combo2.displayvalue,thisform.combo3.displayvalue,;
  thisform.combo4.displayvalue,thisform.combo5.displayvalue
select *;
from roommanage!tabdjb;
where 是否结帐=.f.;
order by tabdjb.凭证号码;
into cursor lin
thisform.combo5.rowsource='lin.凭证号码'    &&赋数据源
thisform.combo5.setfocus   &&Combo5获得焦点
thisform.refresh    &&刷新表单
thisform.commandgroup1.cadd.enabled=.f.
thisform.commandgroup1.csave.enabled=.t.
thisform.commandgroup1.ccancel.enabled=.t.
thisform.commandgroup1.cexit.enabled=.f.
单击“保存”按钮,将结帐信息保存到退房单“Tabtfd”表中,同时修改客房信息表“Tabkfinfo”中该凭证号码的记录的房态为“空闲”和登记表“Tabdjb”中该凭证号码的记录的“是否结帐”为“.T.”,并判断“结帐方式”是否为“挂帐”,如果是再将该信息保存到挂帐明细表“Tabgzmx”中。具体代码如下:
pzno=alltrim(thisform.combo5.displayvalue)  &&获得输入信息
zsdate=thisform.text1.value
pznumber=alltrim(thisform.text14.value)
cname=alltrim(thisform.text2.value)
zjnumber=alltrim(thisform.text3.value)
zstime=alltrim(thisform.text4.value)
manager=alltrim(thisform.text5.value)
zsyy=alltrim(thisform.text6.value)
area=alltrim(thisform.text7.value)
price=thisform.text8.value
tfdate=thisform.text9.value
tftime=alltrim(thisform.text11.value)
zsday=thisform.text10.value
tel=alltrim(thisform.text12.value)
cmemo=alltrim(thisform.text13.value)
kflx=alltrim(thisform.combo2.displayvalue)
zjname=alltrim(thisform.combo1.displayvalue)
jkfs=alltrim(thisform.combo3.displayvalue)
fjno=alltrim(thisform.text15.displayvalue)
sjmoney=thisform.text16.value
zk=thisform.text17.value
ysmoney=thisform.text18.value
yfmoney=thisform.text19.value
jezj=thisform.text20.value
workdw=alltrim(thisform.text21.value)
thmoney=thisform.text23.value
dhf=val(thisform.dhf.caption)
zf=val(thisform.zf.caption)
hyf=val(thisform.hyf.caption)
ccf=val(thisform.ccf.caption)
pcf=val(thisform.pcf.caption)
gzdw=alltrim(thisform.combo6.value)
sfjz=.t.
cmessagetitle='退宿结帐'
cmessagetext='确定要保存吗?'
ndialogtype=4+32
nAnswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)
if nAnswer=6
   if empty(pznumber)    &&判断证件号码是否为空
    messagebox('凭证号码不能为空',48,'操作失败!')
    thisform.combo5.setfocus
 else
    if alltrim(thisform.combo3.displayvalue)='挂帐'
       if empty(gzdw)
          messagebox('挂帐单位不能为空!',48,'操作失败!')
          thisform.combo6.setfocus
       else
                    select tabtfd
                    set order to 凭证号码
                    seek pznumber
                    insert into tabtfd values(pznumber,cname,zjname,zjnumber,area,workdw, zsyy,fjno,;
kflx,price,zsdate,zstime,zsday,sjmoney,jkfs,zk,ysmoney,zf,dhf,hyf,ccf,pcf,jezj,;
ysmoney,thmoney,tfdate,tftime,cmemo,tel,manager)   &&追加新记录
        update tabkfinfo set 房态='空闲' where 房间号=fjno      &&更新数据表
        update tabdjb set 是否结帐=.t. where 凭证号码=pzno
        if thisform.combo3.displayvalue='挂帐'
           zy='住宿时间:'+alltrim(dtoc(zsdate))+' 住宿天数:'+alltrim(str(zsday,8,2))
           qkmoney=ysmoney-yfmoney
           moneylj=qkmoney
           insert into tabgzmx values(tfdate,gzdw,zy,ysmoney,qkmoney,0,moneylj,;
            cname,zjname,zjnumber,pzno,tftime,kflx,price,.f.)
        endif
        messagebox('数据保存完毕',48,'操作成功!')
        thisform.Resize        &&执行表单的Resize事件
        thisform.combo6.enabled=.f.
        thisform.commandgroup1.cexit.enabled=.t.
        thisform.commandgroup1.ccancel.enabled=.f.
        thisform.commandgroup1.csave.enabled=.f.
        thisform.commandgroup1.cadd.enabled=.t.
     endif
  else
     select tabtfd
     set order to 凭证号码
     seek pznumber
     insert into tabtfd values(pznumber,cname,zjname,zjnumber,area,workdw,zsyy, fjno,kflx,;
price,zsdate,zstime,zsday,sjmoney,jkfs,zk,ysmoney,zf,dhf,hyf,ccf,pcf,jezj,ysmoney,;
thmoney,tfdate,tftime,cmemo,tel,manager)      &&追加新记录
         update tabkfinfo set 房态='空闲' where 房间号=fjno     &&更新数据表
         update tabdjb set 是否结帐=.t. where 凭证号码=pzno
         messagebox('数据保存完毕',48,'操作成功!')
         thisform.resize    &&执行表单的Resize事件
         thisform.commandgroup1.cexit.enabled=.t.
         thisform.commandgroup1.ccancel.enabled=.f.
         thisform.commandgroup1.csave.enabled=.f.
         thisform.commandgroup1.cadd.enabled=.t.
      endif
   endif
endif
thisform.refresh    &&刷新表单
在“取消”按钮的Click事件中添加以下代码:
thisform.Resize       &&执行表单的Resize事件
thisform.gzdw.visible=.f.
thisform.combo6.visible=.f.
thisform.refresh
thisform.commandgroup1.cadd.enabled=.t.
thisform.commandgroup1.csave.enabled=.f.
thisform.commandgroup1.ccancel.enabled=.f.
thisform.commandgroup1.cexit.enabled=.t.
在text1控件的InteractiveChange事件中添加以下代码:
sf=thisform.text1.value
yf=thisform.text4.value
thisform.text5.value=yf-sf    &&求出未收金额赋给文本框text5
在text9控件的InteractiveChange事件中添加以下代码:
thisform.text10.value=thisform.text9.value-thisform.text1.value
if thisform.text10.value=0
   thisform.text10.value=1
 endif
thisform.text16.value=thisform.text8.value*thisform.text10.value
thisform.text20.value=thisform.text16.value+val(thisform.dhf.caption)+val(thisform.zf.caption)+;
   val(thisform.hyf.caption)+val(thisform.ccf.caption)+val(thisform.pcf.caption)
thisform.text18.value=thisform.text20.value*thisform.text17.value/100
thisform.text23.value=thisform.text19.value-thisform.text18.value
在text10控件的InteractiveChange事件中添加以下代码:
thisform.text16.value=thisform.text10.value*thisform.text8.value
根据用户选择的“结帐方式”自动计算应收宿费。如果选择的是“挂帐”将要求用户输入挂帐单位。
在combo3控件的InteractiveChange事件中添加以下代码:
zk=thisform.text17.value
sjxf=thisform.text16.value
do case
   case thisform.combo3.displayvalue='招待'
        thisform.text17.enabled=.f.
        thisform.text19.enabled=.f.
        thisform.gzdw.visible=.f.
        thisform.combo6.visible=.f.
        thisform.text17.value=0
        thisform.text18.value=0
   case thisform.combo3.displayvalue='折扣'
        thisform.text17.enabled=.t.
        thisform.text19.enabled=.t.
        thisform.gzdw.visible=.f.
        thisform.combo6.visible=.f.    &&显示Combo6控件
        thisform.text18.value=thisform.text20.value*thisform.text17.value/100
        thisform.text23.value=thisform.text19.value-thisform.text18.value
   case thisform.combo3.displayvalue='挂帐'
        thisform.text17.enabled=.f.
        thisform.text17.value=100
        thisform.text18.value=thisform.text20.value
        thisform.gzdw.visible=.t.
        thisform.combo6.visible=.t.
        select tabgzdwinfo     &&选择Tabgzdwinfo工作区为当前工作区
        thisform.combo6.rowsource='tabgzdwinfo.单位全称'    &&赋数据源
endcase
在text17控件的InteractiveChange事件中添加以下代码:
sjxf=thisform.text16.value
zk=thisform.text17.value
thisform.text18.value=thisform.text20.value*thisform.text17.value/100
thisform.text23.value=thisform.text19.value-thisform.text18.value
在Text22控件的InteractiveChange事件中添加以下代码:
do case
   case thisform.combo4.displayvalue='电话费'
        thisform.dhf.caption=alltrim(str(thisform.text22.value,8,2))
   case thisform.combo4.displayvalue='杂费'
        thisform.zf.caption=alltrim(str(thisform.text22.value,8,2))
   case thisform.combo4.displayvalue='会议费'
        thisform.hyf.caption=alltrim(str(thisform.text22.value,8,2))
   case thisform.combo4.displayvalue='存车费'
        thisform.ccf.caption=alltrim(str(thisform.text22.value,8,2))
   case thisform.combo4.displayvalue='赔偿费'
        thisform.pcf.caption=alltrim(str(thisform.text22.value,8,2))
endcase
thisform.text20.value=thisform.text16.value+val(thisform.dhf.caption)+val(thisform.zf.caption)+;
         val(thisform.ccf.caption)+val(thisform.hyf.caption)+val(thisform.pcf.caption)
thisform.text18.value=thisform.text20.value*thisform.text17.value/100
thisform.text23.value=thisform.text19.value-thisform.text18.value
在text20控件的InteractiveChange事件中添加以下代码:
thisform.text18.value=thisform.text20.value*thisform.text17.value/100
在combo4控件的InteractiveChange事件中添加以下代码:
thisform.text22.value=0
在combo5控件的InteractiveChange事件中添加以下代码:
pzno=alltrim(thisform.combo5.displayvalue)
thisform.text14.value=alltrim('T'+pzno)
select * from roommanage!tabdjb where 凭证号码=pzno order by tabdjb.凭证号码;
into cursor lindeping
thisform.combo1.displayvalue=lindeping.证件名称  &&赋值给Combo1等
thisform.combo2.displayvalue=lindeping.客房类型
thisform.combo3.displayvalue=lindeping.结款方式
thisform.text2.value=lindeping.姓名
thisform.text3.value=lindeping.证件号码
thisform.text1.value=lindeping.住宿日期
thisform.text4.value=lindeping.住宿时间
thisform.text6.value=lindeping.住宿原由
thisform.text7.value=lindeping.详细地址
thisform.text8.value=lindeping.房间价格
  thisform.text9.value=date()
  thisform.text11.value=time()
thisform.text10.value=thisform.text9.value-thisform.text1.value
if thisform.text10.value=0
   thisform.text10.value=1
endif
thisform.text12.value=lindeping.联系电话
thisform.text13.value=lindeping.备注
thisform.text15.displayvalue=lindeping.房间号
thisform.text16.value=thisform.text8.value*thisform.text10.value
thisform.text17.value=lindeping.折扣
thisform.text19.value=lindeping.预付金额
thisform.text20.value=thisform.text16.value+val(thisform.dhf.caption)+val(thisform.zf.caption)+;
         val(thisform.hyf.caption)+val(thisform.ccf.caption)+val(thisform.pcf.caption)
thisform.text21.value=lindeping.工作单位
thisform.text22.value=0
thisform.text18.value=thisform.text20.value*thisform.text17.value/100
thisform.text23.value=thisform.text19.value-thisform.text18.value
if thisform.combo3.displayvalue='挂帐'
   thisform.gzdw.visible=.t.
   thisform.combo6.visible=.t.
   select tabgzdwinfo
   thisform.combo6.rowsource='tabgzdwinfo.单位全称'    &&赋数据源
endif
4.5  住宿查询设计
用户进入系统后,单击主菜单查询统计下的住宿查询子菜单选项,进入住宿查询界面,住宿查询界面主要提供了四种不同类型的查询方式。住宿查询表单运行结果如图6所示。 
 

VFP客房管理系统
1.表单设计
(1)在客房管理系统的项目中,添加一个新表单,名称为Zsquery。
(2)在表单中添加Optiongroup控件、Combo控件、Text控件、Command控件、Grid控件。
(3)重要控件属性如表4所示。
表4                                 重要控件的重要属性及值





控件名

属性




Combo1

RowSource
RowSourceType

姓名,证件号码
1-值


Combo2

RowSource
RowSourceType
Style

like,=,>,<
1-值
2-下拉列表框
2.代码设计
在表单的Init事件中添加以下代码:
thisform.grid1.recordsource='tabdjb'     &&赋数据源
thisform.optiongroup1.Interactivechange  &&执行Optiongroup1的Interactivechange事件
在optiongroup1选项按钮组的InteractiveChange事件中添加以下代码:
do case
   case thisform.optiongroup1.option1.value=1 or thisform.optiongroup1.option2.value=1;
        or thisform.optiongroup1.option3.value=1
        thisform.combo1.enabled=.f.
        thisform.combo2.enabled=.f.
        thisform.text1.enabled=.f.
   case thisform.optiongroup1.option4.value=1
        thisform.combo1.enabled=.t.
        thisform.combo2.enabled=.t.
        thisform.text1.enabled=.t.
endcase
单击“查询”按钮,可以根据用户选择的查询方式查找记录。具体代码如下:
在“查询”按钮的Click事件中添加以下代码:
do case
   case thisform.optiongroup1.option1.value=1
        select *;
        from roommanage!tabdjb;
        where 是否结帐==.t.;
        order by tabdjb.凭证号码;
        into cursor lindeping
        thisform.grid1.recordsource='lindeping'     &&赋数据源
        if reccount()=0
           messagebox('无符合条件的记录!',48,'操作失败')
        endif
   case thisform.optiongroup1.option2.value=1
       select *;
       from roommanage!tabdjb;
       where 是否结帐==.f.;
       order by tabdjb.凭证号码;
       into cursor lindeping
       thisform.grid1.recordsource='lindeping'
       if reccount()=0
          messagebox('无符合条件的记录!',48,'操作失败')
       endif
  case thisform.optiongroup1.option3.value=1
       select tabdjb
       select *;
       from kfgl\database\roommanage!tabdjb;
        order by tabdjb.凭证号码;
        into cursor lindeping
        thisform.grid1.recordsource='lindeping'
        thisform.refresh  
        if reccount()=0
           messagebox('无记录!',48,'操作失败')
        endif
   case thisform.optiongroup1.option4.value=1
        cx=0
        set exact off     &&设置字符精确比较
        cif=alltrim(thisform.combo1.displayvalue)
        ccif=alltrim(thisform.combo2.displayvalue)
        ctext=alltrim(thisform.text1.value)
        if empty(ccif) or empty (ctext)
           messagebox('请输入查询条件!',48,'操作失败!')
           thisform.combo2.setfocus
        else
           if thisform.combo2.displayvalue='like'
                  MySQL=cif+" "+ccif+" '"+"%"+ctext+"%'"
               else
                  MySQL=cif+" "+ccif+" '"+alltrim(thisform.text1.value)+"'"
               endif
               select * from roommanage!tabdjb where &MySQL.into cursor lindeping 
           go top
           if eof()
              go bottom
              messagebox('无符合条件的记录!',48,'信息窗口')
              cx=1
           endif  
           thisform.grid1.recordsource='lindeping'
        endif
endcase
thisform.refresh     &&刷新表单
附录A  参考文献
1.《Visual Basic精彩编程200例》机械工业出版社 赛奎春、高春艳等
2003年1月  
2.《Visual Basic数据库开发实例解析》机械工业出版社     刘志铭、高春艳等
2003年8月  
3.《Visual FoxPro数据库开发实例解析》机械工业出版社  王晶莹、王国辉等
2003年9月  
4.《Power Builder数据库开发实例解析》机械工业出版社  华传铭、张振坤等
2003年9月  
5.《Delphi数据库开发实例解析》机械工业出版社 赛奎春、郑骁鹏等
2004年2月  
6.《PowerBuilder 精彩编程200例》机械工业出版社 张振坤、李文立等
2004年9月
7.《Visual FoxPro 精彩编程200例》机械工业出版社 王国辉、董韶华等
2004年9月
8.《ASP数据库开发实例解析》机械工业出版社 李严、于亚芳、王国辉       2004年12月
9.《Delphi工程应用与项目实践》机械工业出版社 宋坤、赵智勇等
2005年1月  
10.《Visual Basic工程应用与项目实践》机械工业出版社 高春艳、李俊民等
2005年1月  
11.《Visual C++工程应用与项目实践》机械工业出版社 张雨、阮伟良等
2005年1月
12.《JSP工程应用与项目实践》机械工业出版社 陈威、白伟明、李楠
2005年2月
13.《ASP工程应用与项目实践》机械工业出版社 王国辉、牛强、李南南
2005年4月
14.《Visual Basic 信息系统开发实例精选》机械工业出版社 高春艳、李俊民、张耀庭等    2005年7月
15.《ASP 信息系统开发实例精选》机械工业出版社 王国辉、牛强、李南南等
2005年7月  
16.《Delphi 信息系统开发实例精选》机械工业出版社 宋坤、赵智勇、刘强等
2005年7月  
17.《Visual foxpro数据库开发关键技术与实例应用》人民邮电出版社 周桓、张雨、王国辉
2004年5月
18.《Power Builder数据库开发关键技术与实例应用》人民邮电出版社 刘志铭、张振坤、冯文萃 2004年5月
19.《Delphi数据库开发关键技术与实例应用》人民邮电出版社 赛奎春、陈紫鸿、宋昆
2004年5月
20.《Visual basic数据库开发关键技术与实例应用》人民邮电出版社 高春艳、李艳
2004年5月
21.《Visual C++ 管理信息系统完整项目实例剖析》人民邮电出版社 明日科技
2005年7月  
22.《Visual Basic 管理信息系统完整项目实例剖析》人民邮电出版社 明日科技
2005年7月  
23.《PowerBuilder 管理信息系统完整项目实例剖析》人民邮电出版社 明日科技
2005年7月  
24.《Visual FoxPro管理信息系统完整项目实例剖析》人民邮电出版社 明日科技
2005年7月  
25.《SQL Server数据库开发实例解析》机械工业出版社 宋昆、李严等
2006年1月
26.《Access数据库开发实例解析》机械工业出版社 李俊民、高春燕等
2006年1月
27.《Visual Basic数据库系统开发完全手册》人民邮电出版社 明日科技王春才、高春艳、
李俊民 2006年3月
28.《Visual C++ 数据库系统开发完全手册》人民邮电出版社 明日科技 王端、于速、张雨
2006年3月
29.《Delphi数据库系统开发完全手册》人民邮电出版社 明日科技 宋坤、邹天思
2006年3月
30.《JSP数据库系统开发完全手册》人民邮电出版社 明日科技 王国辉、李文立、杨亮
2006年3月
31.《Visual Basic数据库系统开发案例精选》人民邮电出版社 明日科技 高春艳、李俊民、
刘彬彬 2006年5月
32.《Delphi 数据库系统开发案例精选》人民邮电出版社 明日科技 李文立、刘强、梁冰
2006年5月
33.《ASP数据库系统开发案例精选》人民邮电出版社 明日科技 孙明丽、邹天思、盖天宇
2006年5月
34.《JSP数据库系统开发案例精选》人民邮电出版社 明日科技 王国辉、王易
2006年5月
 
VFP客房管理系统
附录B  数据表
q         挂帐单位信息表Tabgzdwinfo
挂帐单位信息表Tabgzdwinfo是用来保存挂帐单位的基本信息。表Tabgzdwinfo的结构如表5所示。
表5                           表Tabgzdwinfo的结构




字段名

数据类型

长度

索引


单位编号

字符型

10

升序


单位全称

字符型

50

 


简称

字符型

20

 


地址

字符型

50

 


邮政编码

字符型

10

 


电话

字符型

20

 


传真

字符型

20

 


联系人

字符型

10

 


联系人电话

字符型

20

 
q         挂帐明细表Tabgzmx
挂帐明细表Tabgzmx是用来保存挂帐单位的信息记录。表Tabgzmx的结构如表6所示。
表6                         表Tabgzmx的结构




字段名称

数据类型

字段大小

索引


日期

日期型

8

 


挂帐单位

字符型

50

 


摘要

字符型

100

 


住宿金额

货币型

8

 


欠款金额

货币型

8

 


还款金额

货币型

8

 


金额累计

货币型

8

 


姓名

字符型

20

 


证件名称

字符型

20

 


证件号码

字符型

20

 


凭证号码

字符型

20

 


时间

字符型

8

 


客房类型

字符型

10

 


客房价格

货币型

8

 


是否结清

逻辑型

1

 
q         客房信息表Tabkfinfo
客房信息表Tabkfinfo是用来记录客房的基本信息。表Tabkfinfo的结构如表7所示。
表7                           表Tabkfinfo的结构




字段名

数据类型

长度

索引


房间号

字符型

10

升序


房间类型

字符型

10

 


价格

货币型

8

 


房态

字符型

50

 


配置

字符型

50

 


使用设置

字符型

10

 


营业时间

日期时间型

8

 


备注

字符型

50

 
q         客房类型表Tabkflx
客房类型表Tabkflx是用来记录客房类型的记录信息。表Tabkflx的结构如表8所示。
表8                              表Tabkflx的结构




字段名

数据类型

长度

索引


类型编号

字符型

10

升序


客房类型

字符型

10

 


价    格

数值型

8

 


备    注

字符型

50

 
q         客房预定表Tabkfyd
客房预定表Tabkfyd是用来保存客人预定客房的信息记录。表Tabkfyd的结构如表9所示。
表9                              表Tabkfyd的结构




字段名

数据类型

长度

索引


姓名

字符型

20

升序


证件名称

字符型

20

 


证件号码

字符型

20

 


联系电话

字符型

20

 


详细地址

字符型

50

 


工作单位

字符型

50

 


客房类型

字符型

10

 


房间价格

货币型

8

 


预住日期

日期型

8

 


预住天数

数值型

8

 


预住金额

货币型

8

 


备注

字符型

50

 


日期

日期型

8

 


操作员

字符型

10

 


时间

字符型

8

 
q         退房单表Tabtfd
退房单表Tabtfd是用来保存退房的基本记录信息。表Tabtfd的结构如表10所示。
表10                                表Tabtfd的结构




字段名

数据类型

长度

索引


凭证号码

字符型

20

升序


姓名

字符型

20

 


证件名称

字符型

20

 


证件号码

字符型

20

 


详细地址

字符型

50

 


工作单位

字符型

50

 


住宿原由

字符型

50

 


房 间 号

字符型

10

 


房间类型

字符型

10

 


房间价格

货币型

8

 


住宿日期

日期型

8

 


住宿时间

字符型

8

 


住宿天数

双精度型

8

2


实际宿费

货币型

8

 


结款方式

字符型

16

 


折扣

双精度型

8

 


应收宿费

货币型

8

 


杂费

货币型

8

 


电话费

货币型

8

 


会议费

货币型

8

 


存车费

货币型

8

 


赔偿费

货币型

8

 


金额总计

货币型

8

 


预收宿费

货币型

8

 


退还宿费

货币型

8

 


退还日期

日期型

8

 


退房时间

字符型

8

 


备注

字符型

50

 


联系电话

字符型

20

 


操作员

字符型

10

 
 
附录C  文件架构
主文件架构如图7所示。若图片无法显示请联系QQ3710167
 
 
  • 上一篇资讯: 商品销售管理系统
  • 下一篇资讯: 医药触摸屏管理系统
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师