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

📄 hotelrecordunit.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, Buttons, ValEdit, ExtCtrls, ComCtrls;

type
  TFrmHotelRecord = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    AddSB: TSpeedButton;
    CloseSB: TSpeedButton;
    GuestIDCB: TComboBox;
    FeeKindCB: TComboBox;
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    Splitter1: TSplitter;
    LookSB: TSpeedButton;
    SpeedButton3: TSpeedButton;
    Label2: TLabel;
    VLE: TValueListEditor;
    PrintSB: TSpeedButton;
    LookUpIDSB: TSpeedButton;
    OutGuestIDCB: TComboBox;
    Label3: TLabel;
    StatusBar1: TStatusBar;
    procedure AddSBClick(Sender: TObject);
    procedure LookSBClick(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure CloseSBClick(Sender: TObject);
    procedure PrintSBClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure LookUpIDSBClick(Sender: TObject);
    procedure OutGuestIDCBChange(Sender: TObject);
    procedure GuestIDCBChange(Sender: TObject);
  private
    ID:string;
    { Private declarations }
  public
    constructor Create(AOwner:TComponent;N:integer);
    { Public declarations }
  end;

var
  FrmHotelRecord: TFrmHotelRecord;
function GetMyDateTime : TDateTime; stdcall; external 'MyDll.dll';
function GetMoney(T:Pchar):double;   stdcall; external 'MyDll.dll';


implementation

uses DataModuleUnit, GetYourInputUnit, QRHotelFeeUnit, QRRoomFeeUnit;

{$R *.dfm}

procedure TFrmHotelRecord.AddSBClick(Sender: TObject);
var
  Card,YourName,SQLStr,FeeStr,PayTime:string;
  FeeValue:double;
begin
  if (ID='')or(FeeKindCB.Text='') then
  begin
    Showmessage('请确定客户编号和费用类别!');
    exit;
  end;
  with DataModule1.qGInfo   do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select GuestID,GuestName,CardID');
    SQL.Add('from tbGInfo where GuestID='+ID);
    Open;
    YourName:=FieldByName('GuestName').AsString;
    Card:=FieldByName('CardID').AsString;
  end;
   FeeValue:=GetMoney(PChar('客户编号:'+ID+'   客户姓名:'+YourName+'    '
       + #13#10#13#10+' 证件号码: '+Card+'  请核实!    '));
   if FeeValue<1 then exit;
   FeeStr:=Format('%10.2f',[FeeValue]);
   PayTime:=DateTimeToStr(GetMyDateTime);
   SQLStr:='Insert tbGHotelFee(GuestID,GuestName,CardID,FeeOffice,FeeDinner,FeePlay,FeeShop,FeeOther,PayDateTime)'
          +' Values('+ID+',"'+YourName+'","'+Card+'",';
   case FeeKindCB.ItemIndex of
    0: SQLStr:=SQLStr+FeeStr+',0.00,0.00,0.00,0.00,"'+ PayTime+'")';
    1: SQLStr:=SQLStr+'0.00,'+FeeStr+',0.00,0.00,0.00,"'+ PayTime+'")';
    2: SQLStr:=SQLStr+'0.00,0.00,'+FeeStr+',0.00,0.00,"'+ PayTime+'")';
    3: SQLStr:=SQLStr+'0.00,0.00,0.00,'+FeeStr+',0.00,"'+ PayTime+'")';
    4: SQLStr:=SQLStr+'0.00,0.00,0.00,0.00,'+FeeStr+',"'+ PayTime+'")';
    else exit;
   end;
   with DataModule1.qGHotelFee do
   begin
     Close;
     SQL.Clear;
     SQL.Add(SQLStr);
     ExecSQL;
     Close;
     SQL.Clear;
     SQL.Add('select GuestID 客户编号, GuestName 客户姓名,CardID 证件号码,');
     SQL.Add('FeeOffice 商务费, FeeDinner 餐饮费,FeePlay 娱乐费,FeeShop 购物费,');
     SQL.Add('FeeOther 其它费用 from tbGHotelFee where GuestID='+ID);
     Open;
   end;
end;

procedure TFrmHotelRecord.LookSBClick(Sender: TObject);
begin
  if (ID='')then
  begin
    Showmessage('请确定客户编号!');
    exit;
  end;
   with DataModule1.qGHotelFee do
   begin
     Close;
     SQL.Clear;
     SQL.Add('select GuestID as 客户编号, GuestName as 客户姓名,CardID as 证件号码,');
     SQL.Add('FeeOffice as 商务费, FeeDinner as 餐饮费,FeePlay as 娱乐费,');
    SQL.Add(' FeeShop as 购物费,FeeOther as 其它费用,PayDateTime as 消费时间');
     SQL.Add('from tbGHotelFee where GuestID='+ID);
     Open;
   end;
end;

procedure TFrmHotelRecord.SpeedButton3Click(Sender: TObject);
var
  Total:Currency;
begin
  if (ID='')then
  begin
    Showmessage('请确定客户编号!');
    exit;
  end;
   with DataModule1.qGHotelFee do
   begin
     Close;
     SQL.Clear;
     SQL.Add('select GuestID 客户编号, GuestName 客户姓名,CardID 证件号码,');
     SQL.Add('sum(FeeOffice) as 商务费, sum(FeeDinner) as 餐饮费,sum(FeePlay) as 娱乐费,');
     SQL.Add('sum(FeeShop) as 购物费, sum(FeeOther) as 其它费用, GetDate() 消费时间');
     SQL.Add(' from tbGHotelFee where GuestID='+ID);
     SQL.Add(' GROUP BY GuestID,GuestName,CardID');
     Open;
     Total:=FieldByName('商务费').Value+FieldByName('餐饮费').Value
            +FieldByName('娱乐费').Value +FieldByName('购物费').Value
            +FieldByName('其它费用').Value ;
     VLE.Values['合计']:=Format('消费合计: %8.2f',[Total]);
  end;
end;

procedure TFrmHotelRecord.CloseSBClick(Sender: TObject);
begin
  Close;
end;

constructor TFrmHotelRecord.Create(AOwner: TComponent; N: integer);
begin
  inherited Create(AOwner);
  if N>=0 then   //为添加打开该窗体
    AddSB.Visible:=true
  else
  begin
    AddSB.Visible:=false; //为查询打开该窗体
    FeeKindCB.Enabled:=false;
  end;
  FeeKindCB.ItemIndex:=N;
end;

procedure TFrmHotelRecord.PrintSBClick(Sender: TObject);
begin
  with QReport2 do
  begin
    DataSet:=DBGrid1.DataSource.DataSet;
    GuestID.DataField:='客户编号';
    GuestName.DataField :='客户姓名';
    FeeOffice.DataField:='商务费';
    FeeDinner.DataField:='餐饮费';
    FeePlay.DataField:='娱乐费';
    FeeShop.DataField:='购物费';
    FeeOther.DataField:='其它费用';
    PayTime.DataField:='消费时间';
    Preview;
  end;

end;

procedure TFrmHotelRecord.FormCreate(Sender: TObject);
begin
  GuestIDCB.Items:=FindGuestID;
end;

procedure TFrmHotelRecord.LookUpIDSBClick(Sender: TObject);
var
  GName:string;
begin
  GName:=GetYourString;
  with DataModule1.qGInfo  do
  begin
    Close;
    sql.Clear;
    SQL.Add('SELECT GuestID From tbGInfo where GuestName="'+GName+'"');
    Open;
    GuestIDCB.Clear;
    First;
    while not eof do
    begin
      GuestIDCB.Items.Add(Fields[0].Value);
      Next;
    end;
    GuestIDCB.ItemIndex:=0;
    if RecordCount>1 then
       Showmessage('存在同名客户,请利用客户编号确定是哪一位!')
    else if RecordCount=1 then
       GuestIDCB.OnChange(self);
  end;
end;

procedure TFrmHotelRecord.OutGuestIDCBChange(Sender: TObject);
begin
  ID:=IntToStr(0-OutGuestIDCB.ItemIndex);;
  LookSB.OnClick(self);
end;

procedure TFrmHotelRecord.GuestIDCBChange(Sender: TObject);
begin
  ID:=GuestIDCB.Text;
  LookSB.OnClick(self);
end;

end.

⌨️ 快捷键说明

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