酒店管理系统介绍
酒店客房餐饮管理系统实现 酒店客房餐饮管理系统功能完善,能管理普通酒店的客房住宿和餐饮等服务。本系统采用DELPHI和SQL SERVER工具开发,分为前台和后台管理。前台与后台管理程序相对独立,均共用一个数据库。下面对该系统的部份功能和模块以及代码进行分析。 一.前台管理 1. 数据模块 该模块是整个程序数据的提供者,以及包括大部分的处理函数和实现功能。 单元文件名,数据模块名DM_main。 部分代码分析 返回指表中某字段的最大值,返回值为整型。因此该函数只能应用字段为整型的表。 function aTable,aFieldstringinteger; var sSqlstring; begin Result0; sSqlselect maxs from s; with Q_getmax do begin atsSql,[aField,aTable]; Open; if not IsEmpty then ResultFields[0].AsInteger1; Close; end; end; 接下来这个函数也是返回最大值,但是其为一个订单的最大编号为字符型。 function string; var idString; countInteger; begin with Q_count_order do begin Open; countFields[0].Value; Close; end; id000IntToStrcount; idCopyid, lengthid-3, 4; idFatDateTimeyymmdd,nowid; Resultid; end; 系统登陆函数在进行系统的操作处理时,必须登陆。该函数对用户输入的用户名和密码数据库验证。其密码是进行加密的(加密模块稍后分析) function user, passwdStringString; var FlagBoolean; begin if false then True; passwdCopypasswdpasswd, 1, 10;sIntegerid; Fields[1].AsStringsid; Fields[2].AsString; Fields[3].AsString; Fields[4].AsString; Post; DisableControls; Close; Open; EnableControls; end; sFloattotal; Post; end; end; aluesid; Open; end; Delete; end; totalsid; with do begin if not Active then Open; Locateid,sid,[]; Edit; Fields[3].AsFloattotal; Post; end; end; procedure Sender TObject; begin sStringsid; Fields[1].AsStringDateTimeToStrNow; Fields[2].AsStringTrim; Post; end; with Q_foodetail do begin Close; ParamByNamesid.Valuesid; Prepare; Open; end; end; 打单票据示例如下。 二.后台管理 1. 数据模块 该模块是整个程序数据的提供者,以及包括大部分的处理函数和实现功能。 单元文件名,数据模块名DM_main。 部分代码分析 设置前台操作员的密码 procedure passwordString; begin passwordCopypasswordpassword, 1, 10; passwordEncryptpassword, 111;//加密单元 with T_operator do begin Edit; FieldValues[PASSWD]password; end; end; 根据客房ID筛选客房 procedure RoomIDString; begin with T_room_modify do begin Close; if lengthRoomID0 then begin FilterIDRoomID; FilteredTrue; end else FilteredFalse; Open; end; end; 获得客房级别 procedure RoomLevelTStrings; begin ; 全部级别; with Q_room_level do begin Open; First; while not Eof do begin FieldValues[DESCRIPT]; Next; end; Close; end; end; 客房统计图实现函数 //StarDate开始日期;EndDate结束日期; procedure StartDate,EndDateTDate; TimeStep, StatTypeBoolean;RoomLevelInteger; BarSeriesTBarSeries; var StatResultinteger; MidDateTDate; StatLabelString; begin ; while StartDateEndDate do begin MidDateGetNextDateStartDate, TimeStep;