客房管理系统毕业设计范例样本_第1页
客房管理系统毕业设计范例样本_第2页
客房管理系统毕业设计范例样本_第3页
客房管理系统毕业设计范例样本_第4页
客房管理系统毕业设计范例样本_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。客房管理系统学院专业班级学号姓名指导教师教师职称年月日

摘要【摘要】随着改革开放步伐的加快,中国服务业取得了巨大的发展。而宾馆是中国的改革开放过程中起步最早的、开拓发展最快、收效最为明显、市场化程度高的服务行业之一。而随着信息科技的发展,传统的管理模式逐渐被信息化及数字化的管理模式所取代,如何得用先进的管理手段,提高宾馆的管理水平,已成为宾馆行业的当务之急。面对信息时代的机遇和挑战,得用科技手段提高企业管理无疑是一条行之有效的途径。客房管理系统的开发充分利用了信息技术提高了宾馆客房的管理水平、服务水平。系统实现了客房预定、住宿登记、宿费提醒、追加押金、调房登记、退房结帐、挂帐、查询统计等功能。其中宿费提醒能够在住宿费超过押金时预警,提示前台要客人补交押金,该功能可明显提高对住宿人员住宿的有效管理。将动态实时的住宿登记、客房调整、销售报表、追加押金等有机地联系在一起,对宾馆客房进行全方位的管理。【关键词】客房管理系统

目录TOC\o"2-3"\h\z\t"样式标题1章名+首行缩进:2字符,1"摘要 2目录 30引言 11需求分析 12总体设计 12.1项目规划 12.2系统功能结构 12.3设计目标 23系统设计 23.1开发及运行环境 24主要功能模块设计 24.1程序主界面的设计 24.2系统登录界面设计 34.3客房信息设计 54.4退宿结帐设计 124.5住宿查询设计 18附录A参考文献 20附录B数据表 21附录C文件架构 250引言随着中国经济的迅速发展,人们的生活水平有了明显的提高,假日经济和旅游经济已经成为人们的消费热点。各地也把旅游也当作本地经济发展的重要支柱之一,从而促进了宾馆酒店业的发展。同时,随着宾馆酒店越来越多,人们的要求越来越高,宾馆酒店的竞争也越来越激烈。如何在激烈的竞争中生存发展,是每个宾馆酒店必须面临的问题。对宾馆经营状况起决定作用的是宾馆的服务管理水平。如何利用先进的管理手段,提高宾馆的管理水平,已成为宾馆酒店也发展的当务之急。客房管理系统的开发能够帮助系统管理员完成日常的客人入住及客人的退房信息的管理及查询等工作,大大提高了的工作效率。虽然计算机管理并不是宾馆管理走向成功的关键元素,但它能够最大限度地发挥准确、快捷、高效等作用,对宾馆的服务管理提供有力的支持。1需求分析根据该宾馆的具体情况,系统主要的功能包括:前台管理:”客房预定”、”住宿登记”、”调房登记”、”追加押金”、”退房结帐”。客房管理:”客房查询”、”房态查看”。查询统计:”预定房查询”、”住宿查询”、”退宿查询”、”宿费提醒”。挂帐管理:”挂帐管理”、”客人结帐”。基础信息设置:”客房信息”、”客房类型信息”、”员工信息”、”挂帐单位信息”。系统初始化:”本单位定义”、”业务部门定义”、”操作员管理”、”权限设置”。系统维护:”系统初始化”、”数据备份”、”数据恢复”。2总体设计2.1项目规划客房管理系统主要是针对中小型的宾馆、酒店开发的客房管理系统,系统由前台管理、客房管理、查询统计、挂帐管理、基础信息设置、系统初始化、系统维护和帮助等几个功能模块组成,规划系统功能模块如下:前台管理前台管理:客房预定、住宿登记、调房登记、追加押金、退宿结帐和退出。客房管理客房管理:客房查询和房态查看。查询统计查询统计:预定房查询、住宿查询、退宿查询、宿费提醒。挂帐管理挂帐管理:挂帐查询和客人结帐。基础信息设置基础信息设置:客房信息、客房类型信息、员工信息和帐挂单位信息。系统初始化系统初始化:本单位定义、业务部分定义、操作员管理和权限设置。系统维护系统维护:系统初始化、数据备份和数据恢复。帮助帮助:帮助和关于本软件2部分。2.2系统功能结构本系统共分7大部分、24个完整的功能模块。系统结构图如图1所示。图1客房管理系统结构图2.3设计目标本系统主要是针对中小型的宾馆、酒店开发的的客房管理系统,主要实现能够下目标:界面设计美观友好。操作员能够随时修改自己的口令,而且不同的操作员设置不同的操作权限,以增强系统的安全性。数据保密性强,为每个用户设置相应的权限级别。信息查询灵活、方便、快捷,数据存储安全可靠。能够实现数据备份和数据恢复,保证数据安全。系统运行稳定,安全可靠。3系统设计3.1开发及运行环境系统开发平台:MicrosoftVisualFoxPro6.0。运行平台:WindowsXP/Windows/Windows。分辨率:最佳效果1024×768像素2数据库设计。1.数据库概要说明数据库在一个管理系统中占居非常重要的地位,数据库结构设计的好坏将直接影响系统的效率和实现的效果。本系统采用的是VisualFoxPro自带的数据库,数据库文件名为Roommanage。2.主要数据表的结构数据库中的数据表请参见附录B。4主要功能模块设计4.1程序主界面的设计程序启动后,在系统登录界面验证操作员密码后,将进入主程序界面。经过主程序界面能够执行相应权限的操作,而且经过选择主界面的菜单,来调用相应程序并进行相应操作。主程序界面如图2所示。图2程序主界面1.表单设计(1)创立一个标准项目,名称为客房管理系统,在该项目中添加一个新表单,名称为Fdesktop。(2)在表单中插入名称为Vcxmain的ToolBar类,在类中添加Command控件、Image控件。2.代码设计在”客房预定”按钮的Click事件中添加以下代码:doformkfgl\form\kfyd在”住宿登记”按钮的Click事件中添加以下代码:doformkfgl\form\zsdj在”退宿结帐”按钮的Click事件中添加以下代码:doformkfgl\form\tsjz在”住宿查询”按钮的Click事件中添加以下代码:doformkfgl\form\zsquery在”客房查询”按钮的Click事件中添加以下代码:doformkfgl\form\kfquery在”房态查看”按钮的Click事件中添加以下代码:doformkfgl\form\fangtaiquery在”宿费提醒”按钮的Click事件中添加以下代码:doformkfgl\form\sftx在”客房信息”按钮的Click事件中添加以下代码:doformkfgl\form\kfmanage根据用户的使用权限,设置按钮是否有效。在vcxmain1类的Init事件中添加以下代码:ifpurview>4orpqtgl=.f.this.parent.vcxmain1.kfyd.enabled=.f.this.parent.vcxmain1.zsdj.enabled=.f.this.parent.vcxmain1.tsjz.enabled=.f.elsethis.parent.vcxmain1.kfyd.enabled=.t.this.parent.vcxmain1.zsdj.enabled=.t.this.parent.vcxmain1.tsjz.enabled=.t.endififpurview>4ORpcxtj=.f.this.parent.vcxmain1.zscx.enabled=.f.this.parent.vcxmain1.sftx.enabled=.f.elsethis.parent.vcxmain1.zscx.enabled=.t.this.parent.vcxmain1.sftx.enabled=.t.endififpurview>4ORpkfgl=.f.this.parent.vcxmain1.kfcx.enabled=.f.this.parent.vcxmain1.ftck.enabled=.f.elsethis.parent.vcxmain1.kfcx.enabled=.t.this.parent.vcxmain1.ftck.enabled=.t.endififpurview>4ORpjcinfo=.f.this.parent.vcxmain1.kfinfo.enabled=.f.elsethis.parent.vcxmain1.kfinfo.enabled=.t.endif在vcxmain1类的”退出”按钮的Click事件中添加以下代码:quit4.2系统登录界面设计用户进入系统前,必须经过系统登录进入主程序界面,系统登录界面主要用于确认用户的身份及使用权限,而且可对系统信息起到保密作用。系统登录界面如图3所示。图3系统登录界面运行结果1.表单设计(1)在客房管理系统项目中,添加一个新表单,名称为Admin。(2)在表单中添加Combo控件、Text控件、Label控件、Command控件、Image控件。(3)重要控件属性如表1所示。表1重要控件的重要属性及值控件名属性值Combo1RowSourceRowSourceTypetabpurview.操作员姓名6-字段Text1PasswordChar*2.代码设计定义全局变量cn,manager,cn存放输入操作员或密码的次数,当cn大于3时,将自动退出系统。manager存放操作员姓名,在系统中应用到操作员姓名时,系统自动添加。在表单的Init事件中添加以下代码:publiccn,manager&&定义全局变量cn=0&&给全局变量赋初值在表单的Resize事件中添加根据用户选择操作员所拥有的权限级别为全局变量赋值的代码。purview=val(alltrim(tabpurview.权限级别))pqtgl=tabpurview.前台管理pkfgl=tabpurview.客房管理pcxtj=tabpurview.查询统计pgzgl=tabpurview.挂帐管理pjcinfo=tabpurview.基础信息设置psyscsh=tabpurview.系统初始化psyswh=tabpurview.系统维护在”确定”按钮的Click事件中添加以下代码实现判断操作员和密码是否正确的功能。如果操作员或密码不正确,将提示重新输入,三次后仍不正确,系统将自动退出。publicmanager&&定义全局变量manager=alltrim(bo1.value)usekfgl\database\tabpurview&&打开数据表cname=alltrim(thisform.Combo1.value)ppassword=alltrim(thisform.text1.value)setorderto操作员姓名&&指定操作员姓名为控制索引ifempty(操作员姓名)thisform.resize&&执行表单的Resize事件manager=alltrim(bo1.displayvalue) store.t.topqtgl,pkfgl,pcxtj,pgzgl,pjcinfo,psyscsh,psyswh doformform\fdesktop&&调入表单 thisform.releaseelseseekcname&&快速查询 setexacton&&设置字符精确比较ifalltrim(tabpurview.操作员姓名)!=cname cn=cn+1 cMessagetitle='系统登录'cMessagetext='操作员错误,请重新输入!' nDialogtype=4+32nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)docasecasenanswer=6&&选择”是”时的操作bo1.value=''bo1.setfocuscasenanswer=7&&选择”否”时的操作messagebox('不要乱来!',48,'系统登录')thisform.release&&释放表单endcaseifcn=3thisform.releaseendifelseifalltrim(tabpurview.密码)!=ppasswordcn=cn+1cmessagetitle='系统登录'cmessagetext='密码错误,请重新输入!'ndialogtype=4+32nanswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)docasecasenanswer=6&&当用户单击”是”按钮thisform.text1.value=''thisform.text1.setfocuscasenanswer=7messagebox('不要乱来!',48,'系统登录')thisform.releaseendcaseifcn=3thisform.releaseendifelsethisform.resize&&执行表单的Resize事件manager=alltrim(bo1.displayvalue)doformform\fdesktopthisform.releaseendifendifendifsetexactoff&&设置字符非精确比较在”取消”按钮的Click事件中添加以下代码:cmessagetitle='系统登录'cmessagetext='真的想要退出吗?'nDialogtype=4+32nanswer=messagebox(cMessagetext,nDialogtype,cMessagetitle)ifnanswer=6thisform.release&&释放表单endif4.3客房信息设计用户进入系统后,单击主菜单基础信息设置下的客房信息子菜单选项,进入客房信息界面时能够经过查询条件查询客房基本信息,并以文本框和列表两种方式显示客房信息。客房信息表单运行结果如图4所示。图4客房管理表单运行结果1.表单设计(1)在客房管理系统项目中,添加一个新表单,名称为Kfmanage。(2)在表单中添加Label控件、Combo控件、Text控件、Edit控件、Command控件、Commandgroup控件、PageFrame控件和Grid控件。(3)重要控件属性如表2所示。表2重要控件的重要属性及值控件名属性值Combo1DisplayValueRowSourceRowSourceType房间号房间号,房间类型,房态1-值Combo2RowSourceRowSourceTypeStyleAll,like,=,>,<1-值2-下拉列表框2.代码设计在表单的Load事件中添加以下代码:publiccx,l&&定义全局变量cx=0l=.f.在表单的Resize事件中添加以下代码:thisform.pageframe1.page1.text1.value=tabkfinfo.房间号&&赋值给Text1等bo1.value=tabkfinfo.房间类型thisform.pageframe1.page1.text3.value=tabkfinfo.价格bo2.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事件中添加以下代码:storeltobo1.enabled=lbo2.enabled=lthisform.pageframe1.page1.text5.enabled=lthisform.pageframe1.page1.text6.enabled=lthisform.pageframe1.page1.text7.enabled=lthisform.pageframe1.page1.edit1.enabled=l在combo2控件的InteractiveChange事件中添加以下代码:ifalltrim(bo2.value)="All"thisform.text1.value=''thisform.text1.enabled=.f.elsethisform.text1.enabled=.t.endif在”查询”按钮的Click事件中添加能够根据用户选择的条件查找记录的代码。cx=0cif=alltrim(bo1.displayvalue)ccif=alltrim(bo2.displayvalue)ctext=alltrim(thisform.text1.value)ifempty(ccif)messagebox('请输入查询条件!',48,'操作失败!')bo2.setfocus&&Combo2获得焦点elseifempty(ctext)ifccif!="All"messagebox('请输入查询条件!',48,'操作失败!')thisform.text1.setfocuselseselect*;&&选择所有字段fromroommanage!tabkfinfo;&&指定查询的数据库文件orderbytabkfinfo.房间号;&&查询结果升序排序intocursorlindepingthisform.pageframe1.page2.grid1.recordsource='lindeping'&&赋数据源lkfnumber=lindeping.房间号selecttabkfinfosetorderto房间号&&指定控制索引文件seeklkfnumber&&快速查询thisform.resize&&执行表单的Resize事件thisform.pageframe1.page1.text1.enabled=.f.thisform.pageframe1.page1.text3.enabled=.f.l=.f.thisform.init&&执行表单的Init事件mandgroup2.enabled=.t.endifelseifbo2.displayvalue='like' MySQL=cif+""+ccif+"'"+"%"+ctext+"%'" else MySQL=cif+""+ccif+"'"+alltrim(thisform.text1.value)+"'" endif select*fromroommanage!tabkfinfowhere&MySQL.intocursorlindepinggotopifeof()gobottommessagebox('客房不存在',48,'信息窗口')mandgroup2.enabled=.f.mandgroup1.cmodify.enabled=.f.mandgroup1.cdel.enabled=.f.cx=1elselkfnumber=lindeping.房间号selecttabkfinfosetorderto房间号seeklkfnumberthisform.resize&&执行表单的Resize事件thisform.pageframe1.page1.text1.enabled=.f.thisform.pageframe1.page1.text3.enabled=.f.l=.f.thisform.init&&执行表单的Init事件mandgroup2.enabled=.t.endifthisform.pageframe1.page2.grid1.recordsource='lindeping'mand1.setfocusthisform.refresh在页框控件的Init事件中添加以下代码:thisform.pageframe1.page1.text1.enabled=.f.thisform.pageframe1.page1.text3.enabled=.f.l=.f.thisform.init&&执行表单的Init事件thisform.resize&&执行表单的Resize事件在”客房基本信息”选项卡的Activate事件中添加以下代码:mandgroup1.csave.enabled=.mandgroup1.ccancel.enabled=.mandgroup1.cadd.enabled=.mandgroup1.cexit.enabled=.mandgroup1.cmodify.enabled=.mandgroup1.cdel.enabled=.mandgroup2.enabled=.t.在”客房基本信息列表”选项卡的Activate事件中添加以下代码:mandgroup1.csave.enabled=.mandgroup1.ccancel.enabled=.mandgroup1.cadd.enabled=.mandgroup1.cmodify.enabled=.mandgroup1.cdel.enabled=.mandgroup1.cexit.enabled=.mandgroup2.enabled=.f.thisform.refresh在edit1控件的KeyPress事件中添加以下代码:ifnKeycode=3mandgroup1.csave.setfocusendif在Combo1控件的Interactivechange事件中添加以下代码:kftype=alltrim(bo1.displayvalue)select*;fromroommanage!tabkflx;where客房类型=kftype;orderbytabkflx.类型编号;intocursorlinshithisform.pageframe1.page1.text3.value=linshi.价格在”|<”按钮的Click事件中添加以下代码:gotop&&把记录指针定位到第一条记录mand1.enabled=.mand2.enabled=.f.ifcx=1mand3.enabled=.f.mand4.enabled=.f.mandgroup1.cmodify.enabled=.f.mandgroup1.cdel.enabled=.f.elsemand3.enabled=.t.mand4.enabled=.t.endifthisform.resize&&执行表单的Resize事件thisform.refresh在”<”按钮的Click事件中添加以下代码:ifcx=1messagebox('已是第一个记录',48,'信息窗口')mand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.f.mand4.enabled=.f.mandgroup1.cmodify.enabled=.f.mandgroup1.cdel.enabled=.f.thisform.resize&&执行表单的Resize事件elseskip-1&&记录指针向上移一条记录thisform.resize&&执行表单的Resize事件ifbof()messagebox('已是第一个记录',48,'信息窗口')mand1.enabled=.f.mand2.enabled=.f.thisform.resize&&执行表单的Resize事件elsemand1.enabled=.t.mand2.enabled=.t.endifmand3.enabled=.t.mand4.enabled=.t.endifthisform.refresh在”>”按钮的Click事件中添加以下代码:ifeof()messagebox('已经是最后一条记录',48,'管理窗口')skip-1&&记录指针向上移一条记录thisform.resize&&执行表单的Resize事件mand1.enabled=.f.mand2.enabled=.f.mand3.enabled=.f.mand4.enabled=.f.mandgroup1.cmodify.enabled=.f.mandgroup1.cdel.enabled=.f.elseskip&&将把记录指针向下移一条记录thisform.resize&&执行表单的Resize事件ifeof()messagebox('已经是最后一条记录',48,'管理窗口')skip-1&&记录指针向上移一条记录thisform.resize&&执行表单的Resize事件mand3.enabled=.f.mand4.enabled=.f.elsemand3.enabled=.t.mand4.enabled=.t.endifmand1.enabled=.t.mand2.enabled=.t.endifthisform.refresh在”>|”按钮的Click事件中添加以下代码:mand3.enabled=.mand4.enabled=.f.gobottom&&记录指针移动到最后一条记录ifcx=1mand1.enabled=.f.mand2.enabled=.f.mandgroup1.cmodify.enabled=.f.mandgroup1.cdel.enabled=.f.elsemand1.enabled=.t.mand2.enabled=.t.endifthisform.resize&&执行表单的Resize事件thisform.refresh在”添加”按钮的Click事件中添加以下代码:thisform.pageframe1.page1.text1.enabled=.t.&&设置控件有效thisform.pageframe1.page1.text3.enabled=.f.l=.t.thisform.init&&执行表单的Init事件*清空各文本框bo1.value=''thisform.pageframe1.page1.text3.value=0bo2.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获得焦点mandgroup1.cmodify.enabled=.mandgroup1.cdel.enabled=.mandgroup1.cexit.enabled=.mandgroup1.ccancel.enabled=.mandgroup1.csave.enabled=.mandgroup1.cadd.enabled=.f.thisform.pageframe1.page2.enabled=.mandgroup2.enabled=.mand1.enabled=.f.单击”保存”按钮,在客房信息表”Tabkfinfo”中查找该房间号,如果没有找到则将用户输入的信息保存到客房信息表”Tabkfinfo”中;如果找到则修改”Tabkfinfo”中的相应信息。具体代码如下:在”保存”按钮的Click事件中添加以下代码:*获得输入信息kfnumber=alltrim(thisform.pageframe1.page1.text1.value)fjlx=alltrim(bo1.value)price=thisform.pageframe1.page1.text3.valueft=alltrim(bo2.value)yytime=thisform.pageframe1.page1.text5.valuecmemo=alltrim(thisform.pageframe1.page1.text6.value)sysz=alltrim(thisform.pageframe1.page1.text7.value)pz=alltrim(thisform.pageframe1.page1.edit1.value)cmessagetitle='客房管理系统'cmessagetext='确定要保存吗?'ndialogtype=4+32nAnswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)docasesenAnswer=6ifempty(kfnumber)=.t.&&判断房间号是否为空messagebox('房间号不能为空',48,'操作失败!')thisform.resize&&执行表单的Resize事件elseselecttabkfinfosetorderto房间号seekkfnumberif!found()insertintotabkfinfovalues(kfnumber,fjlx,price,ft,pz,sysz,yytime,cmemo)messagebox('数据保存完毕',48,'操作成功!')elsecmessagetitle='客房管理系统'cmessagetext='客房已经存在,要修改吗?'ndialogtype=4+32nAnswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)docasecasenAnswer=6updatetabkfinfoset价格=price,房间类型=fjlx,房态=ft,营业时间=yytime,;使用设置=sysz,备注=cmemo,配置=pzwhere房间号=kfnumbermessagebox('数据修改完毕',48,'操作成功!')casenanswer=7thisform.resize&&执行表单的Resize事件endcaseendifendifthisform.pageframe1.page1.text1.enabled=.f.thisform.pageframe1.page1.text3.enabled=.f.l=.f.thisform.init&&执行表单的Init事件mandgroup1.cmodify.enabled=.mandgroup1.cdel.enabled=.mandgroup1.cexit.enabled=.mandgroup1.ccancel.enabled=.mandgroup1.csave.enabled=.mandgroup1.cadd.enabled=.t.thisform.pageframe1.page2.enabled=.mandgroup2.enabled=.mand1.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事件mandgroup1.cmodify.enabled=.mandgroup1.cdel.enabled=.mandgroup1.cexit.enabled=.mandgroup1.ccancel.enabled=.mandgroup1.csave.enabled=.mandgroup1.cadd.enabled=.t.thisform.pageframe1.page2.enabled=.mandgroup2.enabled=.mand1.enabled=.t.在”修改”按钮的Click事件中添加以下代码:thisform.pageframe1.page1.text1.enabled=.f.thisform.pageframe1.page1.text3.enabled=.t.l=.t.thisform.Init&&执行表单的Init事件mandgroup1.cmodify.enabled=.mandgroup1.cdel.enabled=.mandgroup1.cexit.enabled=.mandgroup1.ccancel.enabled=.mandgroup1.csave.enabled=.mandgroup1.cadd.enabled=.f.thisform.pageframe1.page2.enabled=.mandgroup2.enabled=.mand1.enabled=.f.在”删除”按钮的Click事件中添加以下代码:kfnumber=alltrim(thisform.pageframe1.page1.text1.value)cmessagetitle='客房管理系统'cmessagetext='确定要删除吗?'ndialogtype=4+32nAnswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)docasecasenAnswer=6usekfgl/database/tabkfinfoexclusive&&以独占方式打开数据表delefromtabkfinfowhere房间号=kfnumber&&逻辑删除记录delefromtabkfinfowhereempty(房间号)pack&&物理删除thisform.resize&&执行表单的Resize事件thisform.pageframe1.page2.grid1.recordsource='tabkfinfo'messagebox('删除完毕',48,'操作成功!')thisform.refreshendcase4.4退宿结帐设计用户单击主菜单前台管理下的退宿结帐子菜单选项,进入退宿结帐界面。退宿结帐界面主要实现显示公司名称、网址、显示退宿帐号、住宿时间、操作员姓名以及完成客人退宿结帐的操作。退宿结帐表单运行结果如图5所示。图5退宿结帐表单运行结果1.表单设计(1)在客房管理系统的项目中,添加一个新表单,名称为Tsjz。(2)在表单中添加Label控件、Combo控件、Text控件、Commandgroup控件。(3)重要控件属性如表3所示。表3重要控件的重要属性及值控件名属性值Combo1RowSourceTypeStyle6-字段2-下拉列表Text4FormatInputMask999999.992.代码设计在表单的Resize事件中添加以下代码:store.f.tobo1.enabled,bo2.enabled,bo3.enabled,;bo4.enabled,bo5.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事件bo1.enabled=.f.thisform.gzdw.visible=.f.&&隐藏Gbo6.visible=.mandgroup1.csave.enabled=.mandgroup1.ccancel.enabled=.mandgroup1.cadd.enabled=.mandgroup1.cexit.enabled=.t.在combo2控件的KeyPress事件中添加以下代码:selecttabkflxifnKeyCode=13thisform.text8.setfocusthisform.text8.value=价格endif在Combo2控件的InteractiveChange事件中添加以下代码:thisform.text8.value=tabkflx.价格在”结帐”按钮的Click事件中添加以下代码:store.t.tobo3.enabled,bo4.enabled,bo5.enabled,;bo6.enabled,thisform.text9.enabled,thisform.text11.enabled,;thisform.text13.enabled,thisform.text17.enabled,thisform.text22.enabledstoredate()tothisform.text1.value,thisform.text9.valuestoretime()tothisform.text4.value,thisform.text11.valuethisform.text5.value=managerstore0tothisform.text8.value,thisform.text10.value,thisform.text16.value,;thisform.text18.value,thisform.text19.value,thisform.text20.value,;thisform.text22.value,thisform.text23.valuethisform.text17.value=100store''tothisform.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,bo1.displayvalue,;bo2.displayvalue,bo3.displayvalue,;bo4.displayvalue,bo5.displayvalueselect*;fromroommanage!tabdjb;where是否结帐=.f.;orderbytabdjb.凭证号码;intocursorbo5.rowsource='lin.凭证号码'&&赋数据源bo5.setfocus&&Combo5获得焦点thisform.refresh&&刷新表单mandgroup1.cadd.enabled=.mandgroup1.csave.enabled=.mandgroup1.ccancel.enabled=.mandgroup1.cexit.enabled=.f.单击”保存”按钮,将结帐信息保存到退房单”Tabtfd”表中,同时修改客房信息表”Tabkfinfo”中该凭证号码的记录的房态为”空闲”和登记表”Tabdjb”中该凭证号码的记录的”是否结帐”为”.T.”,并判断”结帐方式”是否为”挂帐”,如果是再将该信息保存到挂帐明细表”Tabgzmx”中。具体代码如下:pzno=alltrim(bo5.displayvalue)&&获得输入信息zsdate=thisform.text1.valuepznumber=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.valuetfdate=thisform.text9.valuetftime=alltrim(thisform.text11.value)zsday=thisform.text10.valuetel=alltrim(thisform.text12.value)cmemo=alltrim(thisform.text13.value)kflx=alltrim(bo2.displayvalue)zjname=alltrim(bo1.displayvalue)jkfs=alltrim(bo3.displayvalue)fjno=alltrim(thisform.text15.displayvalue)sjmoney=thisform.text16.valuezk=thisform.text17.valueysmoney=thisform.text18.valueyfmoney=thisform.text19.valuejezj=thisform.text20.valueworkdw=alltrim(thisform.text21.value)thmoney=thisform.text23.valuedhf=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(bo6.value)sfjz=.t.cmessagetitle='退宿结帐'cmessagetext='确定要保存吗?'ndialogtype=4+32nAnswer=messagebox(cmessagetext,ndialogtype,cmessagetitle)ifnAnswer=6ifempty(pznumber)&&判断证件号码是否为空messagebox('凭证号码不能为空',48,'操作失败!')bo5.setfocuselseifalltrim(bo3.displayvalue)='挂帐'ifempty(gzdw)messagebox('挂帐单位不能为空!',48,'操作失败!')bo6.setfocuselse selecttabtfd setorderto凭证号码 seekpznumber insertintotabtfdvalues(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)&&追加新记录updatetabkfinfoset房态='空闲'where房间号=fjno&&更新数据表updatetabdjbset是否结帐=.t.where凭证号码=pznoifbo3.displayvalue='挂帐'zy='住宿时间:'+alltrim(dtoc(zsdate))+'住宿天数:'+alltrim(str(zsday,8,2))qkmoney=ysmoney-yfmoneymoneylj=qkmoneyinsertintotabgzmxvalues(tfdate,gzdw,zy,ysmoney,qkmoney,0,moneylj,;cname,zjname,zjnumber,pzno,tftime,kflx,price,.f.)endifmessagebox('数据保存完毕',48,'操作成功!')thisform.Resize&&执行表单的Resize事件bo6.enabled=.f.mandgroup1.cexit.enabled=.t.mandgroup1.ccancel.enabled=.f.mandgroup1.csave.enabled=.f.mandgroup1.cadd.enabled=.t.endifelseselecttabtfdsetorderto凭证号码seekpznumberinsertintotabtfdvalues(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)&&追加新记录updatetabkfinfoset房态='空闲'where房间号=fjno&&更新数据表updatetabdjbset是否结帐=.t.where凭证号码=pznomessagebox('数据保存完毕',48,'操作成功!')thisform.resize&&执行表单的Resize事件mandgroup1.cexit.enabled=.t.mandgroup1.ccancel.enabled=.f.mandgroup1.csave.enabled=.f.mandgroup1.cadd.enabled=.t.endifendifendifthisform.refresh&&刷新表单在”取消”按钮的Click事件中添加以下代码:thisform.Resize&&执行表单的Resize事件thisform.gzdw.visible=.bo6.visible=.mandgroup1.cadd.enabled=.mandgroup1.csave.enabled=.mandgroup1.ccancel.enabled=.mandgroup1.cexit.enabled=.t.在text1控件的InteractiveChange事件中添加以下代码:sf=thisform.text1.valueyf=thisform.text4.valuethisform.text5.value=yf-sf&&求出未收金额赋给文本框text5在text9控件的InteractiveChange事件中添加以下代码:thisform.text10.value=thisform.text9.value-thisform.text1.valueifthisform.text10.value=0thisform.text10.value=1endifthisform.text16.value=thisform.text8.value*thisform.text10.valuethisform.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/100thisform.text23.value=thisform.text19.value-thisform.text18.value在text10控件的InteractiveChange事件中添加以下代码:thisform.text16.value=thisform.text10.value*thisform.text8.value根据用户选择的”结帐方式”自动计算应收宿费。如果选择的是”挂帐”将要求用户输入挂帐单位。在combo3控件的InteractiveChange事件中添加以下代码:zk=thisform.text17.valuesjxf=thisform.text16.valuedocasecasebo3.displayvalue='招待'thisform.text17.enabled=.f.thisform.text19.enabled=.f.thisform.gzdw.visible=.f.bo6.visible=.f.thisform.text17.value=0thisform.text18.value=0casebo3.displayvalue='折扣'thisform.text17.enabled=.t.thisform.text19.enabled=.t.thisform.gzdw.visible=.f.bo6.visible=.f.&&显示Combo6控件thisform.text18.value=thisform.text20.value*thisform.text17.value/100thisform.text23.value=thisform.text19.value-thisform.text18.valuecasebo3.displayvalue='挂帐'thisform.text17.enabled=.f.thisform.text17.value=100thisform.text18.value=thisform.text20.valuethisform.gzdw.visible=.t.bo6.visible=.t.selecttabgzdwinfo&&选择Tabgzdwinfo工作区为当前工作区bo6.rowsource='tabgzdwinfo.单位全称'&&赋数据源endcase在text17控件的InteractiveChange事件中添加以下代码:sjxf=thisform.text16.valuezk=thisform.text17.valuethisform.text18.value=thisform.text20.value*thisform.text17.value/100thisform.text23.value=thisform.text19.value-thisform.text18.value在Text22控件的InteractiveChange事件中添加以下代码:docasecasebo4.displayvalue='电话费'thisform.dhf.caption=alltrim(str(thisform.text22.value,8,2))casebo4.displayvalue='杂费'thisform.zf.caption=alltrim(str(thisform.text22.value,8,2))casebo4.displayvalue='会议费'thisform.hyf.caption=alltrim(str(thisform.text22.value,8,2))casebo4.displayvalue='存车费'thisform.ccf.caption=alltrim(str(thisform.text22.value,8,2))casebo4.displayvalue='赔偿费'thisform.pcf.caption=alltrim(str(thisform.text22.value,8,2))endcasethisform.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/100thisform.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(bo5.displayvalue)thisform.text14.value=alltrim('T'+pzno)select*fromroommanage!tabdjbwhere凭证号码=pznoorderbytabdjb.凭证号码;intocursorbo1.displayvalue=lindeping.证件名称&&赋值给Combo1等bo2.displayvalue=lindeping.客房类型bo3.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.valueifthisform.text10.value=0thisform.text10.value=1endifthisform.text12.value=lindeping.联系电话thisform.text13.value=lindeping.备注thisform.text15.displayvalue=lindeping.房间号thisform.text16.value=thisform.text8.value*thisform.text10.valuethisform.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=0thisform.text18.value=thisform.text20.value*thisform.text17.value/100thisform.text23.value=thisform.text19.value-thisform.text18.valueifbo3.displayvalue='挂帐'thisform.gzdw.visible=.t.bo6.visible=.t.selecttabgzdwinfobo6.rowsource='tabgzdwinfo.单位全称'&&赋数据源endif4.5住宿查询设计用户进入系统后,单击主菜单查询统计下的住宿查询子菜单选项,进入住宿查询界面,住宿查询界面主要提供了四种不同类型的查询方式。住宿查询表单运行结果如图6所示。图6住宿查询表单运行结果1.表单设计(1)在客房管理系统的项目中,添加一个新表单,名称为Zsquery。(2)在表单中添加Optiongroup控件、Combo控件、Text控件、Command控件、Grid控件。(3)重要控件属性如表4所示。表4重要控件的重要属性及值控件名属性值Combo1RowSourceRowSourceType姓名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论