酒店管理系统介绍
酒店客房餐饮管理系统实现 酒店客房餐饮管理系统功能完善,能管理普通酒店的客房住宿和餐饮等服务。本系统采用DELPHI和SQL SERVER工具开发,分为前台和后台管理。前台与后台管理程序相对独立,均共用一个数据库。下面对该系统的部份功能和模块以及代码进行分析。 一.前台管理 1. 数据模块 该模块是整个程序数据的提供者,以及包括大部分的处理函数和实现功能。 单元文件名:,数据模块名:DM_main。 部分代码分析: 返回指表中某字段的最大值,返回值为整型。因此该函数只能应用字段为整型的表。 function (aTable,aField:string):integer; var sSql:string; begin Result:=0; sSql:= select max(%s) from %s ; with Q_getmax do begin :=at(sSql,[aField,aTable]); Open; if not IsEmpty then Result:=Fields[0].AsInteger+1; Close; end; end; 接下来这个函数也是返回最大值,但是其为一个订单的最大编号为字符型。 function :string; var id:String; count:Integer; begin with Q_count_order do begin Open; count:=Fields[0].Value; Close; end; id:= 000 +IntToStr(count); id:=Copy(id, length(id)-3, 4); id:= F +atDateTime( yymmdd ,now)+id; Result:=id; end; 系统登陆函数:在进行系统的操作处理时,必须登陆。该函数对用户输入的用户名和密码数据库验证。其密码是进行加密的(加密模块稍后分析) function (user, passwd:String):String; var Flag:Boolean; begin if =false then :=True; passwd:=Copy(passwd+passwd, 1, 10);sInteger:=id; Fields[1].AsString:=sid; Fields[2].AsString:=; Fields[3].AsString:=; Fields[4].AsString:=; Post; DisableControls; Close; Open; EnableControls; end; sFloat:=total; Post; end; end; alue:=sid; Open; end; Delete; end; total:=(sid); with do begin if not Active then Open; Locate( id ,sid,[]); Edit; Fields[3].AsFloat:=total; Post; end; end; procedure (Sender: TObject); begin sString:=sid; Fields[1].AsString:=DateTimeToStr(Now); Fields[2].AsString:=Trim; Post; end; with Q_foodetail do begin Close; ParamByName( sid ).Value:=sid; Prepare; Open; end; end; 打单:票据示例如下。 二.后台管理 1. 数据模块 该模块是整个程序数据的提供者,以及包括大部分的处理函数和实现功能。 单元文件名:,数据模块名:DM_main。 部分代码分析: 设置前台操作员的密码: procedure (password:String); begin password:=Copy(password+password, 1, 10); password:=Encrypt(password, 111);//加密单元 with T_operator do begin Edit; FieldValues[ PASSWD ]:=password; end; end; 根据客房ID筛选客房: procedure (RoomID:String); begin with T_room_modify do begin Close; if length(RoomID)>0 then begin Filter:= ID= +RoomID+ ; Filtered:=True; end else Filtered:=False; Open; end; end; 获得客房级别: procedure (RoomLevel:TStrings); 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,EndDate:TDate; TimeStep, StatType:Boolean;RoomLevel:Integer; BarSeries:TBarSeries); var StatResult:integer; MidDate:TDate; StatLabel:String; begin ; while StartDate