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

📄 unit13.pas

📁 酒店住宿管理系统,有完整的文件和源码, 可以下载使用
💻 PAS
字号:
//撤消预订客房
//cancelbookform
unit Unit13;

interface

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

type
  Tcancelbookform = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    DBGrid1: TDBGrid;
    Edit1: TEdit;
    Edit2: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    DataSource1: TDataSource;
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    GroupBox1: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    BitBtn3: TBitBtn;
    GroupBox2: TGroupBox;
    Label3: TLabel;
    Edit3: TEdit;
    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);

    procedure FormShow(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  cancelbookform: Tcancelbookform;

implementation

uses Unit14, Unit1;

{$R *.dfm}

procedure Tcancelbookform.BitBtn2Click(Sender: TObject);
begin

{adodataset1.Connection:=adoconnection1;
   adodataset1.Close;
    adodataset1.Parameters.clear;
    adodataset1.Parameters.AddParameter;
    adodataset1.Parameters[0].name:='s0';
    adodataset1.Parameters[0].DataType:=ftboolean;
    adodataset1.Parameters[0].Direction:=pdinput;
    adodataset1.Parameters[0].Value:=true;
    adodataset1.CommandText:='select * from 订房数据表 where 预订标志=:so';
    adodataset1.Active:=true;
    datasource1.DataSet:=adodataset1;
    dbgrid1.DataSource:=datasource1;

    //adodataset1.Open;
    edit1.Text:='0';
    edit2.text:=''; }
    adodataset1.Close;
    close;
end;


procedure Tcancelbookform.BitBtn1Click(Sender: TObject);

var
    adotable1:TAdoTable;
    adodataset2:TAdodataset;
begin
    adotable1:=TAdoTable.Create(self);
    adotable1.Connection:=adoconnection1;
    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 * from 订房数据历史表 where 订房序号=:s0';
    adodataset2.open;
    adodataset2.edit;
    adodataset2.fieldbyname('结账日期').asdatetime:=now;
    adodataset2.FieldByName('应收金额').Ascurrency:=StrToInt(edit1.text);
    adodataset2.fieldbyname('实收金额').ascurrency:=StrToInt(edit1.text)-adodataset1.FieldByName('押金数').Ascurrency;
    if edit2.Text='' then
    adodataset2.FieldByName('说明').AsString:='退订客房,退还住房押金,收取手续费'
    else
    adodataset2.FieldByName('说明').AsString:=edit2.Text;
    adodataset2.FieldByName('操作员').AsString:=denglu.usename;
    adodataset2.post;
    adodataset2.Close;
    adodataset2.Parameters.Clear;
    adodataset2.Parameters.add;
    adodataset2.Parameters[0].name:='s0';
    adodataset2.Parameters[0].DataType:=ftstring;
    adodataset2.Parameters[0].Size:=12;
    adodataset2.Parameters[0].Value:=adodataset1.fieldbyname('订房序号').asstring;
    adodataset2.CommandText:='select * from 资金清算表 where 订房编号=:s0';
    //adodataset2.Active:=true;
    adodataset2.open;
    adodataset2.Append;
    adodataset2.Edit;
    adodataset2.FieldByName('订房编号').AsString:=adodataset1.fieldbyname('订房序号').asstring;
    adodataset2.FieldByName('客房编号').AsString:=adodataset1.FieldByName('房间编号').AsString;
    adodataset2.FieldByName('客人名称').AsString:=adodataset1.FieldByName('客户名称').AsString;
    adodataset2.FieldByName('证件编号').AsString:=adodataset1.FieldByName('证件号码').AsString;
    adodataset2.FieldByName('押金').AsCurrency:=adodataset1.FieldByName('押金数').Ascurrency;
    adodataset2.FieldByName('应收金额').AsCurrency:=StrToInt(edit1.text);
    adodataset2.FieldByName('实收金额').AsCurrency:=StrToInt(edit1.text)-adodataset1.FieldByName('押金数').Ascurrency;
    adodataset2.FieldByName('预计每天费用').AsCurrency:=adodataset1.FieldByName('住房单价').Ascurrency;
    adodataset2.FieldByName('预计天数').AsInteger:=adodataset1.FieldByName('预计天数').AsInteger;
    adodataset2.FieldByName('事由').AsString:='退订客房,退还住房押金,收取手续费';
    adodataset2.FieldByName('订房日期').AsDateTime:=adodataset1.FieldByName('登记日期').AsDateTime;
    adodataset2.FieldByName('结账日期').AsDateTime:=now;
    adodataset2.FieldByName('操作人').AsString:=denglu.usename;
    adodataset2.Post;
//    adodataset2.Delete;
    adodataset2.close;

    adodataset2.Parameters.Clear;
    adodataset2.Parameters.add;
    adodataset2.Parameters[0].name:='s0';
    adodataset2.Parameters[0].DataType:=ftstring;
    adodataset2.Parameters[0].Size:=6;
    adodataset2.Parameters[0].Value:=adodataset1.fieldbyname('房间编号').asstring;;
    adodataset2.CommandText:='select * from 客房管理 where 客房编号=:s0';
    //adodataset2.Active:=true;
    adodataset2.open;
    adodataset2.Edit;
    adodataset2.FieldByName('保留标志').asboolean:=false;
    adodataset2.post;
    adodataset2.close;
    {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:=Strtoint(edit1.text)-adodataset1.FieldByName('押金数').AsCurrency;
    adotable1.FieldByName('预计每天费用').ascurrency:=adodataset1.FieldByName('住房单价').ascurrency;
    adotable1.FieldByName('预计天数').asinteger:=adodataset1.FieldByName('预计天数').asinteger;
    if edit2.Text='' then
    adotable1.FieldByName('事由').asstring:='退订客房,退还住房押金,收取手续费'
    else
    adotable1.FieldByName('事由').AsString:=edit2.Text;
    adotable1.fieldbyname('订房日期').asdatetime:=now;
    adotable1.fieldbyname('操作员').asstring:=denglu.usename;
    adotable1.post;
    adotable1.close; }
    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:=Strtoint(edit1.text)-adodataset1.FieldByName('押金数').AsCurrency;
    if edit2.Text='' then
    adotable1.FieldByName('说明').asstring:='退订客房,退还住房押金,收取手续费'
    else
    adotable1.FieldByName('说明').asstring:=edit2.Text;
    adotable1.fieldbyname('日期').asdatetime:=now;
    adotable1.fieldbyname('操作人').asstring:=denglu.usename;
    adotable1.post;
    adotable1.close;
    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:=Strtoint(edit1.text)-adodataset1.FieldByName('押金数').AsCurrency;
    if edit2.Text='' then
    adotable1.FieldByName('说明').asstring:='退订客房,退还住房押金,收取手续费'
    else
    adotable1.FieldByName('说明').asstring:=edit2.Text;
    adotable1.fieldbyname('日期').asdatetime:=now;
    adotable1.fieldbyname('操作人').asstring:=denglu.usename;
    adotable1.post;
    adotable1.close;
    cancelrptform.QRLabel3.caption:=adodataset1.FieldByName('订房序号').asstring;
    cancelrptform.QRLabel5.Caption:=adodataset1.FieldByName('房间编号').asstring;
    cancelrptform.QRLabel7.Caption:=adodataset1.FieldByName('客户名称').asstring;
    cancelrptform.QRLabel9.Caption:=adodataset1.FieldByName('证件号码').asstring;
    cancelrptform.QRLabel11.Caption:=inttostr(adodataset1.FieldByName('押金数').Asinteger);
    cancelrptform.QRLabel13.Caption:=edit1.text;
    cancelrptform.QRLabel15.Caption:=inttostr(Strtoint(edit1.text)-adodataset1.FieldByName('押金数').Asinteger);
    if edit2.Text='' then
    cancelrptform.QRLabel17.Caption:='退订客房,退还住房押金,收取手续费'
    else
    cancelrptform.QRLabel17.Caption:=edit2.Text;
    cancelrptform.QRLabel19.Caption:=denglu.usename;
    cancelrptform.QRLabel21.Caption:=datetimetostr(date);
    while application.MessageBox('是否打印订房单(Yes/No)','提示信息',mb_yesno)=IDYes do
              cancelrptform.QuickRep1.PreviewModal;
    adodataset1.Delete;
    if  adodataset1.RecordCount=0 then
begin
showmessage('没有预订的客房信息');
bitbtn1.Enabled:=false;

end
else
bitbtn1.Enabled:=true;
end;




procedure Tcancelbookform.FormActivate(Sender: TObject);
begin
adodataset1.Close;
dbgrid1.DataSource:=datasource1;
dbgrid1.ReadOnly:=true;
datasource1.DataSet:=adodataset1;
adodataset1.Connection:=adoconnection1;
adodataset1.Parameters.Clear;
adodataset1.Parameters.AddParameter;
adodataset1.Parameters[0].name:='s0';
adodataset1.Parameters[0].DataType:=ftboolean;
adodataset1.Parameters[0].Direction:=pdinput;
adodataset1.Parameters[0].Value:=true;
adodataset1.CommandText:='select * from 订房数据表 where 预订标志=:so';
adodataset1.Active:=true;
if  adodataset1.RecordCount=0 then
begin
showmessage('没有预订的客房信息');
bitbtn1.Enabled:=false;

end
else
bitbtn1.Enabled:=true;
edit1.Text:='0';
edit2.Text:='';

end;



procedure Tcancelbookform.FormShow(Sender: TObject);
begin
label3.Visible:=false;
edit3.Visible:=false;
dbgrid1.DataSource:=datasource1;
dbgrid1.ReadOnly:=true;
datasource1.DataSet:=adodataset1;
adodataset1.Connection:=adoconnection1;
adodataset1.Parameters.Clear;
adodataset1.Parameters.AddParameter;
adodataset1.Parameters[0].name:='s0';
adodataset1.Parameters[0].DataType:=ftboolean;
adodataset1.Parameters[0].Direction:=pdinput;
adodataset1.Parameters[0].Value:=true;
adodataset1.CommandText:='select * from 订房数据表 where 预订标志=:so';
adodataset1.Active:=true;
{if  (adodataset1.RecordCount<1) then
begin
showmessage('aaa');
bitbtn1.Enabled:=false;
exit;
end
else
bitbtn1.Enabled:=true; }
edit1.Text:='0';
edit2.Text:='';
end;

procedure Tcancelbookform.Edit1Change(Sender: TObject);
var
xx,yy:string;
len:integer;
begin
if edit1.Text<>'' then
begin
xx:=edit1.Text;
len:=length(xx);
yy:=copy(xx,len,1);
if (yy<'0') or (yy>'9') then
begin
showmessage('您输入了无效的值');
delete(xx,len,1);
edit1.Text:='';
exit;
end;
end;
end;
procedure Tcancelbookform.BitBtn3Click(Sender: TObject);
begin


if (radiobutton1.Checked=true) and (trim(edit3.Text)='') then
begin
showmessage('请输入客户名称:');
edit3.SetFocus;
exit;
end;
 if (radiobutton2.Checked=true) and (trim(edit3.Text)='') then
begin
showmessage('请输入订房序号:');
edit3.SetFocus;
exit;
end;

if radiobutton1.Checked=true then
begin
adodataset1.Close;
adodataset1.Parameters.Clear;
        adodataset1.Parameters.add;
        adodataset1.Parameters[0].name:='s0';
        adodataset1.Parameters[0].DataType:=ftstring;
        adodataset1.Parameters[0].Size:=20;
        adodataset1.Parameters[0].Value:=trim(edit1.Text);
        adodataset1.CommandText:='select * from 订房数据表 where 客户名称=:s0';
        adodataset1.Active:=true;
        if adodataset1.RecordCount=0 then
        begin

        showmessage('无此客户信息!');
        bitbtn1.Enabled:=false;
        exit;
        end
        else
        bitbtn1.Enabled:=true;


end;
if radiobutton2.Checked=true then
begin
adodataset1.Close;
adodataset1.Parameters.Clear;
        adodataset1.Parameters.add;
        adodataset1.Parameters[0].name:='s0';
        adodataset1.Parameters[0].DataType:=ftstring;
        adodataset1.Parameters[0].Size:=12;
        adodataset1.Parameters[0].Value:=trim(edit1.Text);
        adodataset1.CommandText:='select * from 订房数据表 where 订房序号=:s0';
        adodataset1.Active:=true;
        if adodataset1.RecordCount=0 then
        begin

        showmessage('无此订房序号信息!');
        bitbtn1.Enabled:=false;
        exit;
        end
        else
        bitbtn1.Enabled:=true;
end;
if radiobutton3.Checked=true then
begin
adodataset1.Close;
adodataset1.CommandText:='select * from 订房数据表 ';
adodataset1.Active:=true;
 if adodataset1.RecordCount=0 then
        begin
        showmessage('无订房信息!');
        bitbtn1.Enabled:=false;
        exit;
        end
        else
        bitbtn1.Enabled:=true;
end;
end;

procedure Tcancelbookform.RadioButton2Click(Sender: TObject);
begin
label3.Visible:=true;
label3.Caption:='请输入订房序号:';
edit3.Visible:=true;
edit3.Text:='';
edit3.SetFocus;
end;

procedure Tcancelbookform.RadioButton1Click(Sender: TObject);
begin
label3.Visible:=true;
label3.Caption:='请输入客户名称:';
edit3.Visible:=true;
edit3.Text:='';
edit3.SetFocus;
end;

procedure Tcancelbookform.RadioButton3Click(Sender: TObject);
begin
label3.Visible:=false;
edit3.Visible:=false;

end;

end.

⌨️ 快捷键说明

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