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

📄 inputguestinfunit.~pas

📁 很好地delphi书籍源码
💻 ~PAS
字号:
unit InputGuestInfUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Spin, StdCtrls, ComCtrls,DB, Mask, ExtCtrls, Buttons;

type
  TFrmInputGInfo = class(TForm)
    InputGB: TGroupBox;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    NameEdit: TEdit;
    SexCB: TComboBox;
    CardNameCB: TComboBox;
    BornPlaceCB: TComboBox;
    CardIDEdit: TEdit;
    CompanyEdit: TEdit;
    DutyCB: TComboBox;
    AgeCB: TComboBox;
    KindCB: TComboBox;
    Label15: TLabel;
    Label16: TLabel;
    RoomCB: TComboBox;
    Label17: TLabel;
    BedCB: TComboBox;
    Label10: TLabel;
    PriceEdit: TEdit;
    Label7: TLabel;
    PlanDaysCB: TComboBox;
    Label8: TLabel;
    ForegiftCB: TComboBox;
    Label9: TLabel;
    EnterME: TMaskEdit;
    Panel1: TPanel;
    OkSB: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Shape1: TShape;
    PrintSB: TSpeedButton;
    Panel3: TPanel;
    Label13: TLabel;
    WaitessL: TLabel;
    NameL: TLabel;
    Shape2: TShape;
    Label14: TLabel;
    Shape3: TShape;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure NextButtonClick(Sender: TObject);
    procedure EnterMEClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure OkSBClick(Sender: TObject);
    procedure KindCBChange(Sender: TObject);
    procedure RoomCBChange(Sender: TObject);
    procedure PlanDaysCBChange(Sender: TObject);
    procedure PrintSBClick(Sender: TObject);
  private
     ID:string;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmInputGInfo: TFrmInputGInfo;
  function GetMyDateTime : TDateTime; stdcall; external 'MyDll.dll';
implementation
uses DataModuleUnit, InputGRoomUnit, GetYourInputUnit;

{$R *.dfm}

procedure TFrmInputGInfo.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=caFree;
end;

procedure TFrmInputGInfo.FormCreate(Sender: TObject);
begin
  KindCB.Items :=FindRoomKind;
  KindCB.Items.Insert(0,'');
  EnterME.Text:=DateTimeToStr(Now);
end;

procedure TFrmInputGInfo.NextButtonClick(Sender: TObject);
begin
   NameEdit.Text:='';
   AgeCB.Text:='';
   BornPlaceCB.Text:='';
   DutyCB.Text:='';
   PlanDaysCB.Text:='';
   ForegiftCB.Text:='';
   CardIDEdit.Text:='';
   EnterME.Text:='';
   CompanyEdit.Text:='';
   FrmInputGRoom:=TFrmInputGRoom.Create(self);
end;

procedure TFrmInputGInfo.EnterMEClick(Sender: TObject);
var
  MyDate:TDateTime;
begin
  MyDate:=GetMyDateTime;
  ID:=CreateNewID(MyDate);
  EnterME.Text:=DateTimeToStr(MyDate);
  OkSB.Enabled:=true;
end;

procedure TFrmInputGInfo.SpeedButton2Click(Sender: TObject);
begin
  Close;
end;

procedure TFrmInputGInfo.OkSBClick(Sender: TObject);
var
  SQLStr:TStrings;
begin
  if (NameEdit.Text='')or(CardNameCB.Text='')or(CardIDEdit.Text='')or
     (KindCB.Text='')or(RoomCB.Text='')or(BedCB.Text='')or(EnterME.Text='')or
     (not IsInteger(PriceEdit.Text)) or
     (not IsInteger(AgeCB.Text)) or
     (not IsInteger(PlanDaysCB.Text))or
     (not IsInteger(ForegiftCB.Text))     then
  begin
    ShowMessage('输入的信息不完整或有错误,请再检查一下,好吗?');
    Exit;
  end;
  with DataModule1.qGInfo do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * from tbGInfo where GuestName="'+NameEdit.Text+'"');
    SQL.Add(' AND CardID="'+CardIDEdit.Text+'"');
    Open;
    if Not IsEmpty then
    begin
      Showmessage('登记的客户中,存在姓名和证件号码相同者,请重新确认!');
      exit;
    end;
  end;
  SQLStr:=TStringList.Create;
  SQLStr.Add('BEGIN TRAN MyTran');
//插入客户基本信息到 tbGInfo 表中
  SQLStr.Add('INSERT INTO tbGInfo VALUES(');
  SQLStr.Add(ID+','); //姓名
  SQLStr.Add('"'+NameEdit.Text+'",'); //姓名
  SQLStr.Add('"'+SexCB.Text+'",'); //性别
  SQLStr.Add(AgeCB.Text+',');  // 年龄
  SQLStr.Add('"'+BornPlaceCB.Text+'",'); //出生地
  SQLStr.Add('"'+CardNameCB.Text+'",'); //证件类型
  SQLStr.Add('"'+CardIDEdit.Text+'",'); //证件号码
  SQLStr.Add('"'+CompanyEdit.Text+'",'); //公司
  SQLStr.Add('"'+DutyCB.Text+'",');   //职务
  SQLStr.Add(PlanDaysCB.Text+',');    //拟住天数
  SQLStr.Add(ForegiftCB.Text+',');    //押金
  SQLStr.Add('"'+EnterME.Text+'",');   //入住时间
  SQLStr.Add('" ")');                //结算时间
 //----------更新床位信息表
  //该房间中的该床位更新换为入住状态
  SQLStr.Add('UPDATE tbHRoomState');
  SQLStr.Add('SET BedState="入住"');
  SQLStr.Add('Where RoomID="'+RoomCB.Text+'" and BedID="'+BedCB.Text+'"');
  //该房间更新换为入住状态
  SQLStr.Add('UPDATE tbHRoomState');
  SQLStr.Add('SET RoomState="入住"');
  SQLStr.Add('Where RoomID="'+RoomCB.Text+'"');
  //如果该房中空闲床位已经是1 则房间状态更新为住满
  SQLStr.Add('if (Select Count(*) from tbHRoomState ');
  SQLStr.Add('where RoomID="'+RoomCB.Text+'" AND BedState="空闲")=0');
  SQLStr.Add('BEGIN');
  SQLStr.Add('UPDATE tbHRoomState ');
  SQLStr.Add('SET RoomState="住满" ');
  SQLStr.Add('Where RoomID="'+RoomCB.Text+'"');
  SQLStr.Add('END');
// 建立该客户的房间及床位使用档案记录
  SQLStr.Add('INSERT INTO tbGRoomFee VALUES(');
  SQLStr.Add(ID+','); //客户编号
  SQLStr.Add('"'+NameEdit.Text+'",'); //姓名
  SQLStr.Add('"'+CardIDEdit.Text+'",'); //证件号码
  SQLStr.Add('"'+RoomCB.Text +'",'); //房间号
  SQLStr.Add('"'+BedCB.Text+'",'); //床位号
  SQLStr.Add(PriceEdit.Text+','); //床位价格
  SQLStr.Add('0,'); //使用天数
  SQLStr.Add('"'+EnterME.Text+'",');                //使用时间
  SQLStr.Add('" ")');                //停用时间
// 建立该客户宾馆消费档案记录
  SQLStr.Add('INSERT INTO tbGHotelFee VALUES(');
  SQLStr.Add(ID+','); //客户编号
  SQLStr.Add('"'+NameEdit.Text+'",'); //姓名
  SQLStr.Add('"'+CardIDEdit.Text+'",'); //证件号码
  SQLStr.Add('0,'); //商务费
  SQLStr.Add('0,'); // 餐费
  SQLStr.Add('0,'); //娱乐费
  SQLStr.Add('0,'); //购物费
  SQLStr.Add('0,'); //其它费用
  SQLStr.Add('" ")'); //消费时间
//提交
  SQLStr.Add('COMMIT TRAN');
  with DataModule1.qGInfo do
  begin
    Close;
    SQL.Clear;
    SQL.AddStrings(SQLStr);
    try
      ExecSQL;
      Showmessage('客户 '+NameEdit.Text+' 住宿登记完毕!');
      NameEdit.Text:='';//姓名
      AgeCB.Text:='';  // 年龄
      BornPlaceCB.Text:=''; //出生地
      CardIDEdit.Text:=''; //证件号码
      KindCB.ItemIndex:=0;
      CompanyEdit.Text:=''; //公司
      DutyCB.Text:='';   //职务
      PlanDaysCB.Text:='';    //拟住天数
      ForegiftCB.Text:='';    //押金
      EnterME.Text:='';
      PrintSB.Enabled:=true;
    except On E:Exception do
      Application.MessageBox(PChar('操作失败!'+E.Message),'提示:',MB_ICONERROR);
    end;
  end;

end;

procedure TFrmInputGInfo.KindCBChange(Sender: TObject);
var
  S:string;
begin
  RoomCB.Items:=RoomKindCBChange(KindCB.Text,S);
  PriceEdit.Text:=S;
end;

procedure TFrmInputGInfo.RoomCBChange(Sender: TObject);
begin
  BedCB.Items:=RoomIDChange(RoomCB.Text);
end;

procedure TFrmInputGInfo.PlanDaysCBChange(Sender: TObject);
var
  P,D:integer;
begin
  if (Not IsInteger(PlanDaysCB.Text))or(PriceEdit.Text='') then exit;
  P:=StrToInt(PriceEdit.Text);
  D:=StrToInt(PlanDaysCB.Text);
  ForegiftCB.Text:=IntToStr(P*D+50);
end;

procedure TFrmInputGInfo.PrintSBClick(Sender: TObject);
begin
  Panel1.Visible:=false;
  Print;
  Panel1.Visible:=true;
end;

end.

⌨️ 快捷键说明

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