📄 tf.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 + -