资源描述
基于VB的洗浴中心管理系统设计与实现学士学位论文作者声明本人声明:本人呈交的学位论文是本人在导师指导下取得的研究成果。对前人与其他人员对本文的启发和贡献已在论文中作出了明确的声明,并表示了意。论文中除了特别加以标注和致的地方外,不包含其他人和其它机构已经发表或者撰写过的研究成果。本人同意学校根据学位条例暂行实施办法等有关规定保留本人学位论文并向国家有关部门或资料库送交论文或者电子版,允许论文被查阅和借阅;本人授权枣庄学院可以将本人学位论文的全部或者部分容编入有关数据库进行检索,可以采用影印、缩印或者其它复制手段和汇编学位论文(论文在解密后应遵守此规定)。 作者签名: 日期:年月日31 / 36摘 要本文论述了洗浴管理信息系统开发的全过程。从分析洗浴流程的基本情况入手,进行系统的可行性分析,通过分析日常业务,了解洗浴管理的特点和存在的问题,在此基础上,进行详细的系统分析,得出系统功能结构图,再通过系统设计,系统实施等环节,最终开发出能够满足洗浴业务需要的洗浴管理信息系统。经过实际的需求分析,采用VisualBasic6.0作为开发工具而开发出来的洗浴信息管理系统。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,该洗浴管理信息系统的功能主要突出服务项目、包房信息、箱包管理以与收银结账管理。经过实际测试证明,本文所设计的洗浴中心信息管理系统可以用于洗浴信息管理方面的需要。论文主要介绍了本课题的选题背景,课题来源,所要完成的功能和开发的全过程。重点的说明了系统设计的重点、设计思想、数据库的设计和系统的解决方案。关键词VisualBasic6.0;SQL Server2000;洗浴管理系统;查询;结算AbstractThis paper discusses the management information system bathing the entire process. From the analysis of the basic bath, the authors conducted the feasibility analysis, analysis of day-to-day operations. Bath management to understand the characteristics and the problems on this basis, detailed systems analysis, Then the system functional structure, and through the system design, system implementation, etc., eventually developed to meet the operational requirements of the bath bathing management information systems. After the actual demand analysis using VisualBasic6.0 as developed as bathing information management system EC. With the entire system from the simple、friendly interface、flexible、practical and safety requirements. The Bath management information systems highlight the main function of services, cabins information, luggage management and the closure of the cash register management. After test results, In this paper, the bath center management information system can be used for bathing information management needs.This is on the topic of the washing that background, the task sources, to be accomplished by the development and function of the whole process Note the emphasis of the system design focus, design, database design and system solutions. KeywordsVisualBasic6.0;SQL Server2000; bathroom management system; inquiries; settlement 目 录第1章绪论11.1引言11.1.1洗浴中心管理系统的研究背景11.1.2国外研究现状11.1.3洗浴中心管理系统的研究目的与意义21.2论文结构2第2章 系统开发技术介绍42.1 VisualBasic6.0编程语言42.1.1 VisualBasic6.0的简介42.1.2 VisualBasic6.0的特点42.2 ADO技术52.2.1 ADO特点概述52.2.2 ADO 的对象62.3 SQLServer2000数据库72.3.1 SQLServer2000的简介72.3.2 SQL Server2000 的特性包括72.4 应用平台配置8第3章系统总体设计93.1需求分析93.1.1用户需求分析93.1.2系统概述93.2系统功能设计103.3数据库结构设计103.3.1数据库设计原则103.3.2洗浴中心管理系统的实体-联系模型113.3.3系统数据库设计11第4章系统的实现164.1数据库连接功能164.2系统登录窗体和主界面164.3总台服务管理194.4结账收银管理254.5月结算管理26第5章总结29参考文献30致31第1章 绪论1.1引言1.1.1洗浴中心管理系统的研究背景随着人民生活水平的不断提高,餐饮、酒吧、洗浴等消费产业也得到迅猛发展,但由于洗浴行业具有服务多样、价格多变、折扣灵活以与报表复杂等特点,并且随着消费业务量的不断增大,部人员的增加,靠以往手工的管理手段进行管理,已不能适应企业的发展。这就迫切需要一个能紧密配合企业进行数据管理、决策分析的现金管理方式,把科学的管理思想、营销技术全面融入其中,为企业规业务流程,实现模块化发展奠定良好的基础。信息化管理无疑是最有效的管理手段之一。利用先进的信息技术,可以帮助洗浴企业抛弃传统的管理模式,突破制约企业发展的瓶颈,使企业的运营目标具有更强的可操作性,最大限度地实现企业资源的合理利用,以期达到企业效率最高化,企业利润最大化。通过对多家洗浴企业进行深入细致的调查和分析,做出的一套标准化的洗浴管理系统。它适用于中、小型洗浴行业,可以帮助洗浴企业处理日常工作业务,规模管理和操作流程,有效的实现了企业的现代化管理,全面提升了企业的市场竞争力和整体形象。1.1.2国外研究现状随着人们休闲娱乐需求的提高,洗浴中心的功能的也越来越完善,正朝着同其他公共建筑结合组成建筑群落的方向发展。如建于公元3世纪的古罗马卡瑞卡拉浴场就在附近设有演讲厅和图书馆以与其他文化休闲场所。就像古罗马的浴场一样,随着时代的发展,人们需求的变化,洗浴中心也相应的随着变化而变化。我国百姓的消费有所提高,国门大开,人们接受外来的新事物,闲暇时间的增加使人们开始考虑休闲生活的意义和质量。同时在我国市场需求多样化、个性化和时尚化的推动下,作为休闲娱乐建筑的一种洗浴建筑,应时代要求诞生了。一个小小的澡堂子变成了集多功能于一体的康体娱乐建筑。这就需要一个功能完善的洗浴管理系统作支撑。如今,在国外洗浴管理系统已经在世界各个发达国家广泛应用了,而且应用围越来越广,功能越来越完善,操作越来越简单。但在国应用的还比较少,传统洗浴企业的日常运作还是靠人工管理,从服务项目入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,客人结账由手工记录,人力耗费大,客人等待时间长,管理效率低下,这就迫切需要标准的、高效率的计算机管理方式引导其发展,通过计算机管理该企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。1.1.3洗浴中心管理系统的研究目的与意义系统开发的总体任务是实现各种信息的系统化、规化和自动化。具体能实现对包房信息和员工信息的添加、修改、查询,箱号生成、修改以与自动搜索引擎,在总台实现顾客领牌、顾客服务、查看包房信息、统计顾客消费、包房维修禁用和恢复使用、大厅和包房的随时调换,以与当日结算查询、月营业分析等功能。这不仅帮助洗浴企业抛弃传统的管理模式,也突破制约企业发展的瓶颈,使企业的运营目标具有更强的可操作性,最大限度地实现企业资源的合理利用,以期达到企业效率最高化,企业利润最大化。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。越来越多的管理人员意识到信息管理的重要性。作为计算机应用的一部分,使用计算机对洗浴企业信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、性好、寿命长、成本低等。这些优点能够极提高信息管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件 。课题以城市洗浴中心为背景,通过研究当前洗浴中心的管理现状、存在问题以与现实需求,设计一个针对洗浴管理工作的管理信息系统。该系统能够提供较为完备的功能,对于提高工作效率、加快洗浴管理的自动化具有较为重要的意义。1.2论文结构本文介绍了洗浴中心管理系统的开发前景、需求分析、各功能模块的设计和主要功能实现。具体来讲,主要包括以下几个方面:第一章:需求调研与分析。通过对当前洗浴中心调查研究,全面了解了洗浴中心日常业务流程,为构建洗浴中心管理系统提出科学的需求分析。第二章:系统开发技术介绍。是对VisualBasic6.0、SQL Server2000和ADO技术的特点进行了简单的描述。第三章:功能模块框架设计。应用VisualBasic6.0作为开发平台,对系统整体主要功能做了描述。在系统功能分析的基础上,系统共分为基本信息管理、前台信息管理、后台信息管理、总经理查询、系统维护、系统帮助和系统退出七功能大模块。第四章:系统的实现。论述了数据库安装、权限设置,完成了系统调试,并进行了简要总结。第2章 系统开发技术介绍2.1VisualBasic6.0编程语言2.1.1VisualBasic6.0的简介Visual Basic是由美国微软公司1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序1。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows部的广泛应用程序接口(API)函数,动态库(DLL)、对象的与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统2。2.1.2VisualBasic6.0的特点1、面向对象VisualBasic6.0采用了面向对象设计思想,它基本思路是把复杂的设计问题分解为多个能够完成独立功能且相对简单的对象集合。所谓“对象”就是个可操作实体如窗体、窗体中命令按钮、标签、文本框等,面向对象编程就是指程序员可根据界面设计要求直接在界面上设计出窗口、菜单、按钮等类型对象并为每个对象设置属性。 2、事件驱动在Windows环境下是以事件驱动方式运行每个对象的,都能响应多个区别事件。每个事件都能驱动段代码事件过程,该代码决定了对象功能。通常称这种机制为事件驱动的编程机制。可由用户操作触发也可以由系统或应用触发,例如单击个命令按钮就触发了按钮Click(单击)事件该事件中代码就会被执行,若用户未进行任何操作(未触发事件)则就处于等待状态整个应用就是由彼此独立事件过程构成。 3、软件Software集成式开发VisualBasic6.0为编程提供了个集成开发环境在这个环境中编程者可设计界面、编写代码、调试直至把应用编译成可在Windows中运行可执行文件并为它生成安装VisualBasic6.0集成开发环境为编程者提供了很大方便3。4、强大数据库访问功能VisualBasic6.0利用数据Control控件可以访问多种数据VisualBasic6.0提供ADOControl控件不但可以用最少代码实现数据库操作和控制,也可以取代DataControl控件和RDOControl控件4。5、支持对象和嵌入技术VisualBasic6.0核心是对对象和嵌入(OLE)技术支持它是访问所有对象种思路方法利用OLE技术能够开发集声音、图像、动画、字处理、Web等对象于一体的功能强大的软件5。6、网络功能VisualBasic6.0提供了DltTML(DynamictTML)设计工具利用这种技术可以动态创建和编辑Web页面使用户在VisualBasic6.0中开发多功能网络应用软件Software6。7、多个应用向导VisualBasic6.0提供了多种向导如应用向导、安装向导、数据对象向导和数据窗体向导,通过它们可以快速地创建区别类型、区别功能应用。8、联机帮助功能在VisualBasic6.0中利用帮助菜单和F1功能键用户可随时方便地得到所需要帮助信息VisualBasic6.0帮助窗口中显示了有关举例代码通过复制、粘贴操作可获取大量举例代码为用户学习和使用提供方便7。2.2 ADO技术2.2.1 ADO特点概述1、易于使用,可以说这是ADO最重要的特点之一。ADO 是高层数据库访问技术,相对与ODBC来说,具有面性对象的特点8。同时,在 ADO 对象结构中,对象与对象之间的层次结构不适非常明显,这会给编写数据库程序带来更多的便利。比如,在应用程序中如果要使用记录集对象,不一定要先建立连接、会话对象,如果需要就可以直接构造记录集对象。总之,已经没有必要去关心对象的构造层次和构造顺序了9。2、可以访问多种数据源。和 OLE DB 一样,使应用程序具有很好的通用性和灵活性10。3、访问数据源效率高。4、方便的Web应用。ADO 可以以 ActiveX 控件的形式出现,这就大大方便了Web应用程序的编制11。5、技术编程接口丰富。 ADO 支持 Visual C+、Visual Basic、VBS、JS等12。2.2.2 ADO 的对象1、Connection用于表示和数据源的连接,以与处理一些命令和事务。2、Command用于执行某些命令来进行诸如查询、修改数据库结构的操作。3、Recordset用于处理数据源的表格集,它是在表中修改、检索数据的最主要的方法13。4、Field描述数据集中的列信息。5、Parameter用于对传递给数据源的命令赋参数值。6、Error用于承载所产生所无的详细信息。7、Property通过属性,每个ADO对象借此来让用户描述和控制自身的行为。8、Set集合是一种可以方便的包含其他特殊类型对象的对象类型。 ADO 提供4种类型的集合:Connection 对象具有Error集合。Command 对象具有Parameter集合。Recordset 对象具有Fields集合。Connection、Command、Recordset、Field 对象都具有Property集合。9、Event事件模型是异步操作的基础,这是 ADO 2.0 引进的新特性。2.3 SQLServer2000数据库2.3.1 SQLServer2000的简介SQL Server2000 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本14。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server15。2.3.2SQL Server2000 的特性包括1、Internet 集成。SQL Server 2000 数据库引擎提供完整的XML 支持。它还具有构成最大的Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等功能,在Web 应用程序中包含了用户友好的查询和强大的搜索功能16。 2、可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows® 98 的便携式电脑,到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型存支持等功能,使其得以升级到最大 Web 站点所需的性能级别17。 3、企业级数据库功能。SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小18。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器19。 4、易于安装、部署和使用。 SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server2000 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分20。这些功能使您得以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。2.4 应用平台配置1、硬件配置服务器:PC Server系列与其他品牌服务器。工作站:586以上、32MB以上存、1.2GB以上硬件空间。2、软件配置操作系统:Windowes2000,WindowesNT。数据库系统:SQL Server2000。开发工具:Microsoft Visual Basic6.0。第3章 系统总体设计3.1需求分析3.1.1用户需求分析随着人民生活水平的提高,洗浴在服务行业中占有越来越重要的地位。努力在当前服务行业日趋激烈的竞争中脱颖而出,已成为每位经营者所追求的目标。经过多年发展,洗浴管理已经逐渐由定性管理,进入到重视定量管理的科学阶段。众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是电脑管理。传统的手工操作管理存在着许多无法避免的问题,例如:l 人工计算帐单金额容易出现差错。l 收银工作中跑单、漏单、偷钱现象普遍。l 个别服务员作弊、改单情形时有发生。l 客人消费单据难以保存和查询。l 无法对大量营业数据进行统计分析。l 无法准确迅速的解决折扣和优惠等问题。l 无法准确满足客人的个性需求。l 无论收银还是财务都需要大量的人力物力。洗浴中心管理系统就是针对以上问题设计的,实现了日常洗浴营运的自动管理。3.1.2系统概述1、系统介绍洗浴管理系统是一套功能强大而又简便实用的洗浴管理软件,包括基本信息管理、前台信息管理、后台信息管理、总经理查询、系统维护、系统帮助等六大功能模块,实现了洗浴行业日常营运的全面自动管理,是洗浴行业进行电脑信息化管理的理想选择。2、系统目标本管理系统参照了大量的同类软件,并进行了细致彻底的研究,旨在用计算机系统来完成基本能完成的工作,保持很高的灵活性和易操作性,并实现了各种信息的系统化、规化和自动化。3.2系统功能设计在系统功能分析的基础上,系统分为6大模20个完整子模块,系统功能结构(如图3-1所示)图3-1系统功能结构图3.3数据库结构设计3.3.1数据库设计原则1、一致性原则对信息进行统一、系统的分析与设计,协调好各数据源,做到“数出一门”、“算法统一”、“度量一致”。保证系统数据的一致性和有效性。2、完整性原则数据库的完整性是指数据的正确性和相容性。要防止合法用户使用数据库时向数据库中加入不合法语义的数据。DBMS提供一种机制来检查数据库中的数据来维护数据库的完整性。这些加在数据库数据之上的语义约束条件称为数据库完整性约束条件,是完整性控制机制的核心。3、安全性原则数据库的安全性是指保护数据,防止非法用户使用数据库,包括恶意破坏数据和越权存取数据,安全性措施的防对象是非法用户和非法操作。4、可伸缩性原则数据库结构的设计应充分考虑到应用环境的改变和新需求的出现,一般不会推翻原设计,不会对现有的应用程序和数据造成大的影响,而只是在原设计基础上作一些扩充即可满足要求。5、规化数据库的设计应遵循规化理论,规化程度过低的关系,可能会存在插入、删除异常、修改复杂、数据冗余等问题,解决的方法就是对关系模式进行分解或合并(化),转换成高级式。但也应当注意到,并不是规化程度越高的关系就越好。所以,在具体应用时,到底规化进行到什么程度需要权衡利弊。一般而言,做到第三式(3NF)就足够了。3.3.2洗浴中心管理系统的实体-联系模型 (如图3-2所示)图3-2 E-R图3.3.3系统数据库设计下面一一介绍各个数据库表的结构1、包房信息表使用户更清晰直接的了解包房信息,该系统在此表中设定了包房编号、类型、容纳人数、价格等。表3-1包房信息表序号字段名称数据类型长度1编号Varchar42楼层Varchar103房间号Varchar304包房名称Varchar105包房说明Varchar506所属部门Varchar87包房类型Varchar88容纳人数int49状态Varchar2510现容纳人数int1011包房价格money812消费单位Varchar813分钟描述int82、箱号信息表箱号信息表主要包括记录号、箱号、所在大厅、状态。表3-2 箱号信息 序号字段名称数据类型长度1记录号Int42箱号Varchar103所在大厅Varchar304状态Varchar103、包房临时消费表包房临时消费表记录顾客的消费情况。记录房间号、包房名称、价格、消费时间、消费金额等。表3-3 包房临时消费信息序号字段名称数据类型长度1记录号Int42房间号Varchar103包房价格money84包房名称Varchar505分钟描述Char106箱号Varchar107所在大厅Varchar308进入时间datetime89结束时间datetime810消费时间datetime411消费金额money84、临时消费信息表临时消费信息表主要记录项目编号、名称、单位、单价、消费状态、折扣、金额小计等。表3-4 临时消费信息表序号字段名称数据类型长度1记录号Int42箱号Varchar103所在大厅Varchar304项目编号Varchar105名称Varchar506单位Varchar87单价Money88数量Int49简称Varchar2510消费状态Varchar1011隐藏状态Varchar8 12登记时间Datetime813折扣Fload814金额小计Money85、日消费单据表日消费单据表记录顾客一天的消费情况。主要有主客箱号、主客、结账方式、打折、减免金额、减免原因、实缴金额等。表3-5 日消费单据表序号字段名称数据类型长度1记录号Int42消费单据号Varchar203主客箱号Varchar104主客Varchar165登记时间Datetime86结账日期Datetime87结账方式Varchar108总计消费Money89打折Fload810实缴金额Money811找零Money812减免金额Money813减免原因Varchar5014人数Int46、消费项目价格表消费项目价格表主要记录项目的名称、单价等。这也是顾客最关心的一项。表3-6 消费项目价格表序号字段名称数据类型长度1记录号Int42项目编号Varchar103简称Varchar254名称Varchar505单位Varchar106单价Money87说明Varchar1007、月营业信息表月营业信息表主要用于总经理查看某些月的盈利情况。表3-7月营业信息表序号字段名称数据类型长度1月份Char82月份营业额Money8第4章 系统的实现4.1数据库连接功能为了节省系统资源,在系统中新建一个Modulel模块,该模块主要用于连接数据库和表,从而避免了程序中重复性地定义数据连接和数据集对象。Modulel模块中的完整代码如下:Public Function ESQL(ByVal sql As String) As ADODB.Recordset Dimn As ADODB.Connection Dim rs As ADODB.RecordsetSetn = New ADODB.Connectionn.Open StrCnn() Set rs = New ADODB.Recordset rs.Open Trim(sql),n, adOpenKeyset, adLockOptimistic Set ESQL = rsEnd FunctionPublic Function StrCnn()StrCnn = Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=XYGLXT StrCnn = Provider=SQLOLEDB.1;Password=ecc;Persist Security _ & Info=True;User ID=sa;Initial Catalog=XYGLXT;Server=(local)End Function4.2系统登录窗体和主界面根据系统登录窗体,可以选择不同的登录身份,具有不同的操作权限。在单击“确认”按钮时,判断操作员与其密码,如果该操作员存在,那么允许登录系统,并为系统管理员分配权限。否则,提示用户“密码错误”,如果输入三次错误的密码,那么系统将自动退出。登录窗体(如图4-1所示)图4-1 系统登录窗体运行结果当输入的密码正确时,可进入主界面(如图4-2所示)图4-2 系统主窗体单击系统登录窗体上“确认”按钮的click事件代码:Private Sub comyes_Click() Dim MESSAGE As String Adodc1.RecordSource = select * from 权限信息表 where 操作员名称 = + Trim(czy.Caption) + Adodc1.RefreshIf czy.Caption And Text1.Text = Trim(Adodc1.Recordset.Fields(密码) Then If Adodc1.Recordset.Fields(基本信息管理) = 0 Then frm_main.xxgl.Enabled = True Else frm_main.xxgl.Enabled = False If Adodc1.Recordset.Fields(前台信息管理) = 0 Then frm_main.qtxxgl.Enabled = True frm_main.Toolbar1.Buttons(1).Enabled = True frm_main.Toolbar1.Buttons(3).Enabled = True frm_main.Toolbar1.Buttons(5).Enabled = True Else frm_main.qtxxgl.Enabled = False frm_main.Toolbar1.Buttons(1).Enabled = False frm_main.Toolbar1.Buttons(3).Enabled = False frm_main.Toolbar1.Buttons(5).Enabled = False End If If Adodc1.Recordset.Fields(后台信息管理) = 0 Then frm_main.htxxgl.Enabled = True frm_main.Toolbar1.Buttons(7).Enabled = True Else frm_main.htxxgl.Enabled = False frm_main.Toolbar1.Buttons(7).Enabled = False End If If Adodc1.Recordset.Fields(经理查询系统) = 0 Then frm_main.jlcxxt.Enabled = True frm_main.Toolbar1.Buttons(9).Enabled = True frm_main.Toolbar1.Buttons(11).Enabled = True Else frm_main.jlcxxt.Enabled = False frm_main.Toolbar1.Buttons(9).Enabled = False frm_main.Toolbar1.Buttons(11).Enabled = False End If If Adodc1.Recordset.Fields(系统维护) = 0 Then frm_main.xtwh.Enabled = True frm_main.Toolbar1.Buttons(13).Enabled = True Else frm_main.xtwh.Enabled = False frm_main.Toolbar1.Buttons(13).Enabled = False End If Load frm_main frm_main.Show frm_main.St1.Panels(3).Text = czy.Caption Unload Me Else If TIM = 3 Then MESSAGE = MsgBox(密码输入错误,请向系统管理员查询!, 0, 系统提示) If MESSAGE = vbOK Then End End If If czy.Caption = Then MsgBox 请选择操作员!, , 系统提示 ListView1.SetFocus Else If Text1.Text Adodc1.Recordset.Fields(密码) Then MsgBox 密码错误,请重新输入密码!, , 系统提示 TIM = TIM + 1 Text1.SetFocus End If End If End If4.3总台服务管理总台服务管理窗体主要实现客人领牌、服务登记、查看消费信息箱号的调换等功能。在总台服务管理中设计一个View_List过程,以显示箱号与状态,主要通过ListView控件的ListItems集合中的Add方法实现。另外,在程序中还使用了SQL语句中的SUM函数,主要用于统计箱号空闲、使用和损坏的个数。(如图4-3所示)图4-3总台服务管理窗体1、 服务登记通过总台服务管理窗体中“服务登记”工具栏按钮调出“客人消费等级按钮”。客人消费登记窗口主要实现客人消费项目的添加。并且为了使用户更加方便快捷的选择服务项目,当用户输入服务项目的简称后,程序将在“消费项目价格表”。中模糊检索服务项目信息。单击“登记”按钮的代码如下:Private Sub Cmddj_Click() Text1.Width = MS1.CellWidth: Text1.Height = MS1.CellHeight Text1.Left = MS1.CellLeft + MS1.Left: Text1.Top = MS1.CellTop + MS1.Top MS1.Enabled = True Cmdbc.Enabled = True: Cmdqx.Enabled = True Cmddj.Enabled = False: Text1.Enabled = True Text1.Visible = True: Text1.SetFocus For i = 1 To 101 For j = 1 To 9 MS1.TextMatrix(i, j) = Next j Next i pz.Text = 0 hjsl.Text = 0 hjje.Text = 0End Sub图4-4客人消费登记窗口2、换箱单击总台服务管理窗口的“换箱”按钮,顾客可以方便的更改箱号,前提箱号为空闲。更新原箱号和现在箱号的代码如下:Private Sub CmdEnd_Click() On Error Resume Next myval = MsgBox(确认将 & Labydt.Caption & & Labyxh.Caption & 箱号的客人转到 & Trim(Combo1.Text) & & Trim(Adodc1.Recordset.Fields(箱号) & 箱号吗?, vbYesNo) If myval = vbYes Then txtSQL = update 临时消费信息表 set 箱号= + Trim(Adodc1.Recordset.Fields(箱号) + ,所在大厅 = + Trim(Combo1.Text) + where 箱号= + Trim(Labyxh.Caption) + and 所在大厅 = + Trim(Labydt.Caption) + Set rs1 = ESQL(txtSQL) txtSQL = update 包房消费临时表 set 箱号= + Trim(Adodc1.Recordset.Fields(箱号) + ,所在大厅 = + Trim(Combo1.Text) + where 箱号= + Trim(Labyxh.Caption) + and 所在大厅 = + Trim(Labydt.Caption) + Set rs2 = ESQL(txtSQL) Adodc1.Recordset.Fields(状态) = 使用 Adodc1.Recordset.Update Adodc1.RecordSource = select * from 箱号信息表 where 箱号 = + Trim(Labyxh.Caption) + and 所在大厅 = + Trim(Labydt.Caption) + Adodc1.Refresh Adodc1.Recordset.Fields(状态) = 空闲 Adodc1.Recordset.Update main_qtgl_ztfwgl.Enabled = True main_qtgl_ztfwgl.ListView1.ListItems.ClearCall main_qtgl_ztfwgl.View_List Unload MeEnd If图4-5换箱窗体的运行结果3、统计查询客人消费统计查询窗口主要实现客人点单、赠单和所有金额的统计,其主要使用sum函数。在总台服务管理窗体中的ToolBar控件的ButtonClick事件下添加如下代码: Case Is = tj If Adodc1.Recordset.RecordCount 0 And Adodc1.Recordset.Fields(状态) = 使用 Then main_qtgl_ztfwgl_tj.Adodc1.RecordSource = select * from 临时消费信息表 where 箱号= + Trim(list) + and 所在大厅 = + Trim(Combo1.Text) + main_qtgl_ztfwgl_tj.Adodc1.Refresh If main_qtgl_ztfwgl_tj.Adodc1.Recordset.RecordCount 0 Then Load main_qtgl_ztfwgl_tj main_qtgl_ztfwgl_tj.Show main_qtgl_ztfwgl_tj.Adodc1.RecordSource = select 消费状态 as 状态1,sum(金额小计)as 金额合计 from 临时消费信息表 where 箱号= + Trim(list) + and 所在大厅 = + Trim(Combo1.Text) + group by 消费状态 order by 消费状态 main_qtgl_ztfwgl_tj.Adodc1.Refresh If main_qtgl_ztfwgl_tj.Adodc1.Recordset.RecordCount 1 Then main_qtgl_ztfwgl_tj.Labdd.Caption = Format(Val(main_qtgl_ztfwgl_tj.Adodc1.Recordset.Fields(1), 0.00) If main_qtgl_ztfwgl_tj.Adodc1.Recordset.EOF = False Then main_qtgl_ztfwgl_tj.Adodc1.Recordset.MoveNext main_qtgl_ztfwgl_tj.Labzd.Caption = Format(Val(main_qtgl_ztfwgl_tj.Adodc1.Recordset.Fields(1), 0.00) ElseIf main_qtgl_ztfwgl_tj.Adodc1.Recordset.RecordCount = 1 Then If main_qtgl_ztfwgl_tj.Adodc1.Recordset.Fields(0) = 赠单 Then main_qtgl_ztfwgl_tj.Labzd.Caption = Format(Val(main_qtgl_ztfwgl_tj.Adodc1.Recordset.Fields(1), 0.00) main_qtgl_ztfwgl_tj.Labdd.Caption = 0.00 Else main_qtgl_ztfwgl_tj.Labdd.Caption = Format(Val(main_qtgl_ztfwgl_tj.Adodc1.Recordset.Fields(1), 0.00) main_qtgl_ztfwgl_tj.Labzd.Caption = 0.00 End If End If main_qtgl_ztfwgl_tj.Labzj.Caption = Format(Val(main_qtgl_ztfwgl_tj.Labdd.Caption) + Val(main_qtgl_ztfwgl_tj.Labzd.Caption), 0.00) main_qtgl_ztfwgl.Enabled = False Else MsgBox (对不起,此箱号的客人未消费,请重新选择!) End If ElseIf Adodc1.Recordset.Fields(状态) = 空闲 Then MsgBox 请先领牌! ElseIf Adodc1.Recordset.Fields(状态) = 损坏 Then MsgBox 您选的箱号已损坏,请重新选择! End If Case Is = jy If Adodc1.Recordset.RecordCount 0 And Adodc1.Recordset.Fields(状态) = 空闲 Then Adodc1.Recordset.Fields(状态) = 损坏 Adodc1.Recordset.Update ListView1.ListItems.Clear Call View_List ElseIf Adodc1.Recordset.Fields(状态) = 使用 Then MsgBox 您选的箱号正在使用,请重新选择! ElseIf Adodc1.Recordset.Fields(状态) = 损坏 Then MsgBox 您选的箱号已损坏,请重新选择! End If Case Is = hf If Adodc1.Recordset.RecordCount 0 And Adodc1.Recordset.Fields(状态) = 损坏 Then Adodc1.Recordset.Fields(状态) = 空闲 Adodc1.Recordset.Update ListView1.ListItems.Clear Call View_List ElseIf Adodc1.Recordset.Fields(状态) = 使用 Then MsgBox 您选的箱号正在使用,请重新选择! ElseIf Adodc1.Recordset.Fields(状态) = 空闲 Then MsgBox 您选的箱号没有损坏,请重新选择! End If图4-6消费统计窗体运行结果4.4结账收银管理结账收银管理主要实现普通结账、免单结账、箱号的禁止使用和恢复使用等功能,运行结果(如图47所示)图4-7结账收银管理4.5月结算管理通过月结算管理窗口,洗
展开阅读全文