⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tf.pas

📁 我自己写的一个有关酒店管理系统的代码 大家
💻 PAS
字号:
unit tf;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, DB, ADODB,DateUtils;

type
  TtFForm = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Label5: TLabel;
    Edit5: TEdit;
    Label6: TLabel;
    Edit6: TEdit;
    Label7: TLabel;
    Edit7: TEdit;
    Label8: TLabel;
    Edit8: TEdit;
    Label9: TLabel;
    Edit9: TEdit;
    Label10: TLabel;
    Edit10: TEdit;
    Label11: TLabel;
    Edit11: TEdit;
    Label12: TLabel;
    Edit12: TEdit;
    Label13: TLabel;
    Edit13: TEdit;
    Edit14: TEdit;
    Label15: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure initiate;
    procedure savetobookroomhistorytable;
    procedure savetodtsztable;
    procedure savetoszhistorytable;
    procedure savetozjqshistorytable;
    procedure savetozjqstable;
  end;

var
  tFForm: TtFForm;

implementation
  uses main,tfrpt;
{$R *.dfm}

procedure TtFForm.BitBtn2Click(Sender: TObject);
begin
    close;
end;

procedure TtFForm.FormActivate(Sender: TObject);
begin
      initiate;
      adodataset1.Connection:=adoconnection1;
end;
procedure TTfForm.initiate;
begin
      edit1.Text:='';
      edit1.setfocus;
      edit2.text:='';
      edit2.Enabled:=false;
      edit2.TabStop:=false;
      edit3.text:='';
      edit3.Enabled:=false;
      edit3.TabStop:=false;
      edit4.text:='';
      edit4.Enabled:=false;
      edit4.TabStop:=false;
      edit5.text:='';
      edit5.Enabled:=false;
      edit5.TabStop:=false;
      edit6.text:='';
      edit6.Enabled:=false;
      edit6.TabStop:=false;
      edit7.text:='';
      edit7.Enabled:=false;
      edit7.TabStop:=false;
      edit8.text:='';
      edit8.Enabled:=false;
      edit8.TabStop:=false;
      edit9.text:='';
      edit9.Enabled:=false;
      edit9.TabStop:=false;
      edit10.text:='';
      edit11.text:='';
      edit11.Enabled:=false;
      edit11.TabStop:=false;
      edit12.text:='';
      edit12.Enabled:=false;
      edit12.TabStop:=false;
      edit13.text:='';
      edit13.Enabled:=false;
      edit13.TabStop:=false;
      edit14.text:='';
      bitbtn1.Enabled:=false;
end;

procedure TtFForm.Edit1Exit(Sender: TObject);
var
      day,stime:integer;
      sum:real;
begin
      adodataset1.Close;
      adodataset1.Parameters.clear;
      adodataset1.Parameters.AddParameter;
      adodataset1.Parameters[0].name:='s0';
      adodataset1.Parameters[0].DataType:=ftstring;
      adodataset1.Parameters[0].Size:=12;
      adodataset1.Parameters[0].Direction:=pdinput;
      adodataset1.Parameters[0].Value:=edit1.text;
      adodataset1.commandtext:='select * from 订房数据表 where 订房序号=:s0';
      adodataset1.open;
      if adodataset1.RecordCount=0 then
          Application.MessageBox('您输入的订房编号错误,请检查!','提示信息',mb_ok)
      else
      begin
          edit2.text:=adodataset1.fieldbyname('房间编号').asstring;
          edit3.text:=adodataset1.fieldbyname('客户名称').asstring;
          edit4.text:=adodataset1.fieldbyname('证件号码').asstring;
          edit5.text:=DateTimetostr(adodataset1.fieldbyname('登记日期').asDatetime);
          edit6.Text:=datetimetostr(now);
          edit7.text:=IntToStr(adodataset1.fieldbyname('住房单价').asinteger);
          edit8.text:=FloatToStr(adodataset1.fieldbyname('折扣率').asfloat);
          edit9.text:=IntToStr(adodataset1.fieldbyname('其他费用').asinteger);
          edit11.text:=IntToStr(adodataset1.fieldbyname('押金数').asinteger);
          if adodataset1.fieldbyname('钟点房').asboolean then
              edit13.text:='钟点房'
          else
              edit13.text:='住宿';
          day:=daysbetween(dateof(strtodatetime(edit6.text)),dateof(strtodatetime(edit5.text)));
          stime:=hourof(strtodatetime(edit6.text));
          if stime>18 then
              sum:=(day+1)*strtofloat(edit8.text)*strtoint(edit7.text)+strtoint(edit9.text)
          else if stime>12 then
              sum:=(day+0.5)*strtofloat(edit8.text)*strtoint(edit7.text)+strtoint(edit9.text)
          else
              sum:=day*strtofloat(edit8.text)*strtoint(edit7.text)+strtoint(edit9.text);
          edit10.text:=floattostr(sum);
          edit12.text:=floattostr(sum-adodataset1.fieldbyname('押金数').asinteger);
      end;
      bitbtn1.Enabled:=true;
end;
procedure TTfForm.savetobookroomhistorytable;
var
    adodataset2:TAdoDataSet;
begin
    adodataset2:=TAdoDataSet.Create(self);
    adodataset2.Connection:=adoconnection1;
    adodataset2.Parameters.clear;
    adodataset2.Parameters.AddParameter;
    adodataset2.Parameters[0].name:='s0';
    adodataset2.Parameters[0].DataType:=ftstring;
    adodataset2.Parameters[0].Size:=12;
    adodataset2.Parameters[0].Direction:=pdinput;
    adodataset2.Parameters[0].Value:=adodataset1.FieldByName('订房序号').AsString;
    adodataset2.CommandText:='select * form 订房数据历史表 where 订房序号=:s0';
    adodataset2.open;
    adodataset2.fieldbyname('结账日期').asdatetime:=strtodatetime(edit6.text);
    adodataset2.FieldByName('应收金额').Ascurrency:=StrToInt(edit10.text);
    adodataset2.fieldbyname('实收金额').ascurrency:=strtoint(edit12.text);
    adodataset2.FieldByName('说明').AsString:='退房';
    adodataset2.FieldByName('操作员').AsString:=username;
    adodataset2.post;
    adodataset2.Close;
end;
procedure TTfForm.savetodtsztable;
var
      adotable1:TAdoTable;
begin
    adotable1:=TAdoTable.Create(self);
    adotable1.TableName:='当天收支报表';
    adotable1.open;
    adotable1.append;
    adotable1.edit;
    adotable1.FieldByName('订房编号').asstring:=adodataset1.FieldByName('订房编号').asstring;
    adotable1.FieldByName('客房编号').asstring:=adodataset1.FieldByName('客房编号').asstring;
    adotable1.FieldByName('客人名称').asstring:=adodataset1.FieldByName('客人名称').asstring;
    adotable1.FieldByName('证件编号').asstring:=adodataset1.FieldByName('证件编号').asstring;
    adotable1.FieldByName('实收金额').AsCurrency:=Strtofloat(edit12.text);
    adotable1.FieldByName('说明').asstring:='退房';
    adotable1.fieldbyname('日期').asdatetime:=strtodatetime(edit6.text);
    adotable1.fieldbyname('操作人').asstring:=username;
    adotable1.post;
    adotable1.close;
end;
procedure TTfForm.savetoszhistorytable;
var
      adotable1:TAdoTable;
begin
    adotable1:=TAdoTable.Create(self);
    adotable1.TableName:='收支历史报表';
    adotable1.open;
    adotable1.append;
    adotable1.edit;
    adotable1.FieldByName('订房编号').asstring:=adodataset1.FieldByName('订房编号').asstring;
    adotable1.FieldByName('客房编号').asstring:=adodataset1.FieldByName('客房编号').asstring;
    adotable1.FieldByName('客人名称').asstring:=adodataset1.FieldByName('客人名称').asstring;
    adotable1.FieldByName('证件编号').asstring:=adodataset1.FieldByName('证件编号').asstring;
    adotable1.FieldByName('实收金额').AsCurrency:=Strtofloat(edit12.text);
    adotable1.FieldByName('说明').asstring:='退房';
    adotable1.fieldbyname('日期').asdatetime:=strtodatetime(edit6.text);
    adotable1.fieldbyname('操作人').asstring:=username;
    adotable1.post;
    adotable1.close;
end;
procedure TTfForm.savetozjqshistorytable;
var
      adotable1:TAdoTable;
begin
    adotable1:=TAdoTable.Create(self);
    adotable1.TableName:='资金明细表'; 
    adotable1.open;
    adotable1.append;
    adotable1.edit;
    adotable1.FieldByName('订房编号').asstring:=adodataset1.FieldByName('订房编号').asstring;
    adotable1.FieldByName('客房编号').asstring:=adodataset1.FieldByName('客房编号').asstring;
    adotable1.FieldByName('客人名称').asstring:=adodataset1.FieldByName('客人名称').asstring;
    adotable1.FieldByName('证件编号').asstring:=adodataset1.FieldByName('证件编号').asstring;
    adotable1.FieldByName('押金').AsCurrency:=adodataset1.FieldByName('押金').AsCurrency;
    adotable1.fieldbyname('应收金额').AsCurrency:=strtofloat(edit10.text);
    adotable1.fieldbyname('实收金额').ascurrency:=strtofloat(edit12.text);
    adotable1.FieldByName('预计每天费用').ascurrency:=adodataset1.FieldByName('客房单价').ascurrency;
    adotable1.FieldByName('预计天数').asinteger:=adodataset1.FieldByName('预计天数').asinteger;
    adotable1.FieldByName('事由').asstring:='退客房';
    adotable1.fieldbyname('订房日期').asdatetime:=adodataset1.fieldbyname('订房日期').asdatetime;
    adotable1.fieldbyname('结账日期').asdatetime:=strtodatetime(edit6.text);
    adotable1.fieldbyname('操作人').asstring:=username;
    adotable1.fieldbyname('打印发票').asboolean:=false;
    adotable1.post;
    adotable1.close;
end;

procedure TtFForm.BitBtn1Click(Sender: TObject);
var
    adodataset2:TAdoDataset;
begin
    //订房历史表
    savetobookroomhistorytable;
    //当天收支数据表
    savetodtsztable;
    //收支历史表
    savetoszhistorytable;
    //资金清算历史表
    savetozjqshistorytable;
    //客房管理
    adodataset2:=TAdodataset.Create(self);
    adodataset2.Connection:=adoconnection1;
    adodataset2.Parameters.Clear;
    adodataset2.Parameters.add;
    adodataset2.Parameters[0].name:='s0';
    adodataset2.Parameters[0].DataType:=ftstring;
    adodataset2.Parameters[0].Size:=6;
    adodataset2.Parameters[0].Direction:=pdinput;
    adodataset2.Parameters[0].Value:=adodataset1.fieldbyname('客房编号').asstring;;
    adodataset2.CommandText:='select * from 客房管理 where 客房编号=:s0';
    adodataset2.Active:=true;
    adodataset2.Edit;
    adodataset2.FieldByName('使用标志').asboolean:=false;
    adodataset2.post;
    adodataset2.close;
    //资金清算表
    savetozjqstable;
    while application.MessageBox('是否打印订房单(Yes/No)','提示信息',mb_yesno)=IDYes do
    begin
              tfrptform.QRLabel3.caption:=edit1.text;
              tfrptform.QRLabel5.caption:=edit2.text;
              tfrptform.QRLabel7.caption:=edit3.text;
              tfrptform.QRLabel9.Caption:=edit4.text;
              tfrptform.QRLabel11.Caption:=edit5.text;
              tfrptform.QRLabel13.Caption:=edit6.text;
              tfrptform.QRLabel15.Caption:=edit7.text;
              tfrptform.QRLabel17.Caption:=edit8.text;
              tfrptform.QRLabel19.Caption:=edit11.text;
              tfrptform.QRLabel21.Caption:=edit9.text;
              tfrptform.QRLabel27.Caption:=edit10.text;
              tfrptform.QRLabel29.Caption:=edit12.text;
              tfrptform.QRLabel31.Caption:=edit14.text;
              tfrptform.QRLabel23.Caption:=username;
              tfrptform.QRLabel25.Caption:=datetimetostr(now);
              tfrptform.QuickRep1.print;
    end;
end;
procedure TTfform.savetozjqstable;
var
    adotable1:TAdoTable;
begin
    adotable1:=TAdoTable.Create(self);
    adotable1.open;
    adotable1.append;
    adotable1.edit;
    adotable1.FieldByName('订房编号').asstring:=adodataset1.FieldByName('订房编号').asstring;
    adotable1.FieldByName('客房编号').asstring:=adodataset1.FieldByName('客房编号').asstring;
    adotable1.FieldByName('客人名称').asstring:=adodataset1.FieldByName('客人名称').asstring;
    adotable1.FieldByName('证件编号').asstring:=adodataset1.FieldByName('证件编号').asstring;
    adotable1.FieldByName('押金').AsCurrency:=adodataset1.FieldByName('押金').AsCurrency;
    adotable1.fieldbyname('应收金额').AsCurrency:=strtofloat(edit10.text);
    adotable1.fieldbyname('实收金额').ascurrency:=strtofloat(edit12.text);
    adotable1.fieldbyname('结账日期').asdatetime:=strtodatetime(edit6.text);
    adotable1.FieldByName('预计每天费用').ascurrency:=adodataset1.FieldByName('客房单价').ascurrency;
    adotable1.FieldByName('预计天数').asinteger:=adodataset1.FieldByName('预计天数').asinteger;
    adotable1.FieldByName('事由').asstring:='退客房';
    adotable1.fieldbyname('订房日期').asdatetime:=strtodatetime(edit6.text);
    adotable1.fieldbyname('操作人').asstring:=username;
    adotable1.post;
    adotable1.close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -