addgroomunit.~pas
来自「很好地delphi书籍源码」· ~PAS 代码 · 共 214 行
~PAS
214 行
unit AddGRoomUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, Buttons, StdCtrls, DB, DBTables, ComCtrls,
ExtCtrls, Mask, jpeg, ImgList;
type
TFrmAddGRoom = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
GuestIDCB: TComboBox;
LookUpIDSB: TSpeedButton;
Label6: TLabel;
ImageList1: TImageList;
AddOkSB: TSpeedButton;
NextSB: TSpeedButton;
GroupBox3: TGroupBox;
DBGrid1: TDBGrid;
GroupBox2: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label9: TLabel;
AddRoomCB: TComboBox;
AddBedCB: TComboBox;
StartME: TMaskEdit;
KindCB: TComboBox;
StatusBar1: TStatusBar;
Image1: TImage;
procedure LookUpIDSBClick(Sender: TObject);
procedure GuestIDCBChange(Sender: TObject);
procedure AddOkSBClick(Sender: TObject);
procedure KindCBChange(Sender: TObject);
procedure AddRoomCBChange(Sender: TObject);
procedure StartMEClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure NextSBClick(Sender: TObject);
private
StrValue:array[0..8]of string; //存放tbGRoomFee表中有9个字段对应的值
procedure SelectAll;
{ Private declarations }
public
{ Public declarations }
end;
var
FrmAddGRoom: TFrmAddGRoom;
function GetMyDateTime : TDateTime; stdcall; external 'MyDll.dll';
implementation
uses DataModuleUnit, GetYourInputUnit;
{$R *.dfm}
procedure TFrmAddGRoom.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 GuestIDCB.OnChange(self)
else if RecordCount>1 then Showmessage('存在同名客户,请利用客户编号确定是哪一位!');
end;
end;
procedure TFrmAddGRoom.GuestIDCBChange(Sender: TObject);
var
i:word;
begin
if not ISInteger(GuestIDCB.Text) then exit;
with DataModule1.qGRoomFee do
begin
Close;
SQL.Clear;
SQL.Add('select * From tbGRoomFee where GuestID='+GuestIDCB.Text);
Open;
if Not IsEmpty then
for i:=0 to FieldCount-1 do
StrValue[i]:=Fields[i].Value;
end;
SelectAll;
AddOkSB.Enabled:=true;
end;
procedure TFrmAddGRoom.AddOkSBClick(Sender: TObject);
var
BedPrice,SQLStr:string;
begin
if (AddRoomCB.Text='')or(AddBedCB.Text='')or(StartME.Text='') then
begin
Application.MessageBox('请重新核实信息是否齐全!','提示',
MB_Ok+MB_IconAsterisk+MB_ApplModal);
exit;
end;
//从床位价格表tbHRoomState中取出价格信息
with DataModule1.qHRoomState do
begin
Close;
SQL.Clear;
SQL.Add('select BedPrice from tbHRoomState where');
SQL.Add('RoomID="'+AddRoomCB.Text+'" AND BedID="'+AddBedCB.Text+'"');
Open;
BedPrice:=FieldByName('BedPrice').Value;
end;
SQLStr:='BEGIN TRAN MyTran '
+'EXEC Insert_tbGRoomFee '
+StrValue[0]+',"' //编号
+StrValue[1]+'","' //姓名
+StrValue[2]+'","' //证件号码
+AddRoomCB.Text+'","' //房号
+AddBedCB.Text+'",' //床号
+BedPrice+',' //价格
+'0,"' //居住天数
+StartME.Text //启用时间
+'"," "'//停用时间
+' UPDATE tbHRoomState SET BedState="入住" '
+' Where RoomID="'+AddRoomCB.Text+'" and BedID="'+AddBedCB.Text+'"'
+' UPDATE tbHRoomState SET RoomState="入住"'
+' Where RoomID="'+AddRoomCB.Text+'"'
+' if (Select Count(*) from tbHRoomState '
+' where RoomID="'+AddRoomCB.Text+'" AND BedState="空闲")=0'
+' BEGIN'
+' UPDATE tbHRoomState SET RoomState="住满"'
+' Where RoomID="'+AddRoomCB.Text+'"'
+' END'
+' COMMIT TRAN';
with DataModule1.qGRoomFee do
begin
Close;
SQL.Clear;
SQL.Add(SQLStr);
ExecSQL;
end;
SelectAll;
KindCB.ItemIndex:=0;
AddRoomCB.Clear;
AddBedCB.Clear;
end;
procedure TFrmAddGRoom.SelectAll;
begin
if GuestIDCB.Text='' then exit;
with DataModule1.qGRoomFee do
begin
Close;
SQL.Clear;
SQL.Add('select GuestID as 客户编号,GuestName as 客户姓名,');
SQL.Add('CardID as 证件号码, RoomID as 房间号, BedID as 床位号,');
SQL.Add('BedStartDateTime as 床位启用时间,BedEndDateTime as 床位停用时间');
SQL.Add('From tbGRoomFee where GuestID='+GuestIDCB.Text);
Open;
end;
end;
procedure TFrmAddGRoom.KindCBChange(Sender: TObject);
var
S:string;
begin
AddRoomCB.Items:=RoomKindCBChange(KindCB.Text,S);
StatusBar1.SimpleText:='床位价格:'+S +'(元)' ;
end;
procedure TFrmAddGRoom.AddRoomCBChange(Sender: TObject);
begin
AddBedCB.Items:=RoomIDChange(AddRoomCB.Text);
end;
procedure TFrmAddGRoom.StartMEClick(Sender: TObject);
begin
StartME.Text:=DateTimeToStr(GetMyDateTime);
end;
procedure TFrmAddGRoom.FormCreate(Sender: TObject);
begin
GuestIDCB.Items:=FindGuestID;
with DataModule1.tbHotelKind do
begin
Close;
Open;
KindCB.Clear;
KindCB.Items.Add('待定');
while not eof do
begin
KindCB.Items.Add(Fields[0].AsString);
Next;
end;
end;
StartME.Text:=DateTimeToStr(Now);
end;
procedure TFrmAddGRoom.NextSBClick(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?