📄 c_main.pas
字号:
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_ZK then
begin
FKfzt[i].AColor := COLOR_ZK;
FKfzt[i].AImage := 5;
FKfzt[i].ACjbz := '';
end;
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_MF then
begin
FKfzt[i].AColor := COLOR_MF;
FKfzt[i].AImage := 4;
FKfzt[i].ACjbz := '';
end;
sgdKfzt.Refresh;
ShowRzl;
qryKfxx.Close;
qryKfxx.Open;
end;
end;
//显示结帐客房状态
procedure TMainForm.ShowJzkfzt;
var
i : Integer;
begin
tblKfzt.Refresh;
tblKfzt.First;
while not tblKfzt.Eof do
begin
if tblKfzt.FieldByName('D_KFZT').AsString = KFZT_ZK then
begin
i := FindKfbhId(tblKfzt.FieldByName('D_KFBH').AsString);
if i<0 then raise Exception.Create('刷新房态发生错误!请重新运行程序。');
FKfzt[i].AKfbh := tblKfzt.FieldbyName('D_KFBH').AsString;
FKfzt[i].AKfzt := tblKfzt.FieldByName('D_KFZT').AsString;
FKfzt[i].AKrbh := tblKfzt.FieldByName('D_KRBH').AsString;
FKfzt[i].AKrxm := tblKfzt.FieldByName('D_KRXM').AsString;
FKfzt[i].ASjfj := tblKfzt.FieldByName('D_SJFJ').AsCurrency;
FKfzt[i].AYjbh := tblKfzt.FieldByName('D_YJBH').AsString;
FKfzt[i].AColor := COLOR_ZK;
FKfzt[i].AImage := 5;
FKfzt[i].ACjbz := '';
//判断是否被预定
if IsYdkf(FKfzt[i].AKfbh) then
FKfzt[i].AYdbz := '★'
else
FKfzt[i].AYdbz := '';
end;
tblKfzt.Next;
end;
sgdKfzt.Refresh;
ShowRzl;
qryKfxx.Close;
qryKfxx.Open;
end;
//显示所有客房状态
procedure TMainForm.ShowKfzt;
var
i,j : Integer;
begin
//刷新客房
sgdKfzt.Color := COLOR_BJ;
sgdKfzt.Font.Color := COLOR_ZT;
tblKfzt.Refresh;
qryKfxx.Close;
qryKfxx.Open;
//获取团队信息
qryTd.Close;
qryTd.Open;
//获取团队信息
GetTdInfo;
//团队信息刷新
for i:=1 to 10 do
(MainForm.FindComponent('lblTdmc'+IntToStr(i)) as TStaticText).Caption := '';
//显示团队信息
for i:=0 to FTdNum - 1 do
(MainForm.FindComponent('lblTdmc'+IntToStr(i+1)) as TStaticText).Caption := FTdInfo[i].ATdxx.AKrxm;
FKfNum := tblKfzt.RecordCount;//客房总数
SetLength(FKfzt,FKfNum);
//edit by ls. 20020823
//sgdKfzt.ColCount := ColNum;
//sgdKfzt.RowCount := (FKfNum div ColNum) + 1;
sgdKfzt.ColCount := (FKfNum div ColNum)*2 + 1;
sgdKfzt.RowCount := ColNum;
tblKfzt.First;
i := 0;
while not tblKfzt.Eof do
begin
FKfzt[i].AKfbh := tblKfzt.FieldbyName('D_KFBH').AsString;
FKfzt[i].AKfzt := tblKfzt.FieldByName('D_KFZT').AsString;
FKfzt[i].AKrbh := tblKfzt.FieldByName('D_KRBH').AsString;
FKfzt[i].AKrxm := tblKfzt.FieldByName('D_KRXM').AsString;
FKfzt[i].ASjfj := tblKfzt.FieldByName('D_SJFJ').AsCurrency;
FKfzt[i].AYjbh := tblKfzt.FieldByName('D_YJBH').AsString;
//判断是否被预定
{if IsYdkf(FKfzt[i].AKfbh) then
FKfzt[i].AYdbz := '★'
else
FKfzt[i].AYdbz := '';}
FKfzt[i].AYdbz := '';
if IS_SHOWDDTS then
FKfzt[i].ADdts := HotelData.GetDdts(FKfzt[i].AKfbh)
else
FKfzt[i].ADdts := '';
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_OK then
begin
FKfzt[i].AColor := COLOR_OK;
FKfzt[i].AImage := 0;
FKfzt[i].ACjbz := '';
end;
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_BF then
begin
FKfzt[i].AColor := COLOR_BF;
FKfzt[i].AImage := 1;
{if IsYjcj(FKfzt[i].AKfbh) then
FKfzt[i].ACjbz := '¥'
else
FKfzt[i].ACjbz := '';}
end;
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_TD then
begin
FKfzt[i].AColor := COLOR_TD;
FKfzt[i].AImage := 2;
for j:=0 to FTdNum - 1 do
if FTdInfo[j].ATdxx.AKrxm = FKfzt[i].AKrxm then
begin
FKfzt[i].AColor := (MainForm.FindComponent('lblTdmc'+IntToStr(j+1)) as TStaticText).Color;
{if (FTdInfo[j].AYfje<>0)and(FTdInfo[j].AXfje>(FTdInfo[j].AYfje-100)) then
FKfzt[i].ACjbz := '¥'
else
FKfzt[i].ACjbz := '';}
Break;
end;
end;
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_WX then
begin
FKfzt[i].AColor := COLOR_WX;
FKfzt[i].AImage := 3;
FKfzt[i].ACjbz := '';
end;
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_ZK then
begin
FKfzt[i].AColor := COLOR_ZK;
FKfzt[i].AImage := 5;
FKfzt[i].ACjbz := '';
end;
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_MF then
begin
FKfzt[i].AColor := COLOR_MF;
FKfzt[i].AImage := 4;
FKfzt[i].ACjbz := '';
end;
Inc(i);
tblKfzt.Next;
end;
sgdKfzt.Refresh;
qryXxbd.Close;
qryXxbd.Open;
end;
//入住率图表显示
procedure TMainForm.ShowRzl;
var
AOk,ABf,ATd,AWx,AMf,AZk: Integer;
ACzs,ACzl : Double;
s : string;
APjfj,AJjfj : Currency;
begin
//AOk := 0;ABf := 0;ATd := 0;AWx := 0;AMf := 0;AZk := 0;
s := 'select count(*) from KFZT where D_KFZT="'+KFZT_OK+'"';
AOk := HotelData.SumCount(s);
s := 'select count(*) from KFZT where D_KFZT="'+KFZT_BF+'"';
ABf := HotelData.SumCount(s);
s := 'select count(*) from KFZT where D_KFZT="'+KFZT_TD+'"';
ATd := HotelData.SumCount(s);
s := 'select count(*) from KFZT where D_KFZT="'+KFZT_WX+'"';
AWx := HotelData.SumCount(s);
s := 'select count(*) from KFZT where D_KFZT="'+KFZT_MF+'"';
AMf := HotelData.SumCount(s);
s := 'select count(*) from KFZT where D_KFZT="'+KFZT_ZK+'"';
AZk := HotelData.SumCount(s);
ACZS := 0;
APJFJ := 0;
with tblKfzt do
begin
DisableControls;
First;
while not Eof do
begin
if (tblKfzt.FieldByName('D_KFZT').AsString=KFZT_BF)or
(tblKfzt.FieldByName('D_KFZT').AsString=KFZT_TD)or
(tblKfzt.FieldByName('D_KFZT').AsString=KFZT_MF) then
begin
if tblKfzt.FieldByName('D_KFBZ').AsString = KFBZ_DT then
begin
ACzs := ACzs + 1;
APjfj := APjfj + tblKfzt.FieldByName('D_SJFJ').AsCurrency;
end
else
begin
if (Time>EnCodeTime(12,0,0,0))
and(Time<=EnCodeTime(18,0,0,0))
and(TIme<EnCodeTime(23,0,0,0)) then
begin
ACzs := ACzs+0.5;
APjfj:= APjfj + tblKfzt.FieldByName('D_SJFJ').AsCurrency*0.5;
end
else if (Time>EnCodeTime(18,0,0,0))and(Time<EnCodeTime(23,0,0,0)) then
begin
ACzs := ACzs+1;
APjfj:= APjfj + tblKfzt.FieldByName('D_SJFJ').AsCurrency;
end;
end;
end;
Next;
end;
EnableControls;
end;
{ACzs := ACzs
+ HotelData.SumCount('select sum(D_QJS) from KFZT')
+ HotelData.SumCount('select sum(D_BJS) from KFZT')*0.5;
AJjfj := HotelData.SumJe('select sum(D_JJFJ) from KFZT');}
ACzs := ACzs
+ HotelData.SumCount('select sum(D_QJS) from BQJ')
+ HotelData.SumCount('select sum(D_BJS) from BQJ')*0.5;
AJjfj := HotelData.SumJe('select sum(D_JJFJ) from BQJ');
if (AOk+ABf+ATd+AMf+AZk)=0 then ACzl := 0
else
ACzl := ACzs/141;//(AOk+ABf+ATd+AMf+AZk);
if ACzs=0 then APjfj := 0
else
APjfj := (APjfj+AJjfj)/ACzs;
lblPjfj.Caption := '均价:'+FormatFloat('#.##',APjfj);
with Series1 do
begin
Clear;
AddBar(AOk,'空房',COLOR_OK);
AddBar(ABf,'散客',COLOR_BF);
AddBar(ATd,'团队',COLOR_TD);
AddBar(AWx,'维修',COLOR_WX);
AddBar(AMf,'免费',COLOR_MF);
AddBar(AZk,'脏空',COLOR_ZK);
end;
with Series2 do
begin
Clear;
{if (AOk+ABf+ATd+AMf+AZk)=0 then ACzl := 0
else
ACzl := (ABf+ATd+AMf)/(AOk+ABf+ATd+AMf+AZk);
AddBar(AOk+ABf+ATd+AMf+AZk,'客房总数',clBlue);
AddBar(ABf+ATd+AMf,'出租数',clGreen);}
AddBar(ACzl*100,'出租率%',clRed)
end;
end;
procedure TMainForm.PopupMenu1Popup(Sender: TObject);
var
Enable: Boolean;
AKfzt : string;
begin
Enable := False;
menuNbdj.Enabled := Enable;
menuWbdj.Enabled := Enable;
menuMfdj.Enabled := Enable;
menuTddj.Enabled := Enable;
menuXxxg.Enabled := Enable;
menuCyxf.Enabled := Enable;
menuDhfj.Enabled := Enable;
menuYksy.Enabled := Enable;
menuJz.Enabled := Enable;
menuOkf.Enabled := Enable;
menuWxf.Enabled := Enable;
if FSelect >= FKfNum then Exit;
AKfzt := tblKfzt.FieldByName('D_KFZT').AsString;
//AKfzt := FKfzt[FSelect].AKfzt;
if (AKfzt<>KFZT_WX)and(AKfzt<>KFZT_MF)and(AKfzt<>KFZT_ZK) then
begin
Enable := AKfzt<> KFZT_OK;
menuNbdj.Enabled := not Enable;
menuWbdj.Enabled := not Enable;
menuMfdj.Enabled := not Enable;
menuTddj.Enabled := not Enable;
menuXxxg.Enabled := Enable;
menuDhfj.Enabled := Enable;
menuYksy.Enabled := Enable;
menuCyxf.Enabled := Enable;
menuJz.Enabled := Enable and (AKfzt<>KFZT_TD);
end;
if AKfzt=KFZT_OK then menuWxf.Enabled := True;
if (AKfzt=KFZT_ZK)
or(AKfzt=KFZT_WX)
or(AKfzt=KFZT_MF) then
menuOkf.Enabled := True;
end;
//内宾接待
procedure TMainForm.menuNbdjClick(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
NbjdEnter(tblKfzt.FieldByName('D_KFBH').AsString);
//刷新
if NbjdForm.ModalResult <> mrOK then
begin
ShowOneKfzt(tblKfzt.FieldByName('D_KFBH').AsString);
//RefreshKfzt;
end;
end;
//信息修改
procedure TMainForm.menuXxxgClick(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
XxxgEnter(tblKfzt.FieldByName('D_KRBH').AsString);
end;
//房态刷新
procedure TMainForm.btnRefreshClick(Sender: TObject);
begin
RefreshKfzt;
end;
//外宾接待
procedure TMainForm.menuWbdjClick(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
WbjdEnter(tblKfzt.FieldByName('D_KFBH').AsString);
if WbjdForm.ModalResult <> mrOK then
begin
ShowOneKfzt(tblKfzt.FieldByName('D_KFBH').AsString);
//RefreshKfzt;
end;
end;
//团队接待
procedure TMainForm.menuTddjClick(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
Tdjd;
if TdjdForm.ModalResult <> mrOK then
RefreshKfzt;
end;
//调换房间
procedure TMainForm.menuDhfjClick(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
SktfEnter(tblKfzt.FieldByName('D_KFBH').AsString);
if SktfForm.ModalResult <> mrOK then
RefreshKfzt;
end;
//帐单查询
procedure TMainForm.menuCyxfClick(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'查询') then Exit;
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_BF then
ZdcxEnter(tblKfzt.FieldByName('D_KFBH').AsString);
if tblKfzt.FieldByName('D_KFZT').AsString=KFZT_TD then
ZdcxtdEnter(tblKfzt.FieldByName('D_KRBH').AsString);
end;
//寓客收银
procedure TMainForm.menuYksyClick(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;
YksyEnter(tblKfzt.FieldByName('D_KFBH').AsString);
end;
//散客结帐
procedure TMainForm.menuJzClick(Sender: TObject);
//var
//AJzxx: TJZXX;
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'结帐') then Exit;
SkjzEnter(tblKfzt.FieldByName('D_KFBH').AsString);
ShowJzkfzt;
//AJzxx := SkjzEnter(tblKfzt.FieldByName('D_KFBH').AsString);
//if AJzxx.AJzfs<>'' then
//begin
//Zd(AJzxx);
//if ZdForm.ModalResult <> mrOK then
//ShowJzkfzt;
//end;
end;
//设置OK房
procedure TMainForm.menuOkfClick(Sender: TObject);
begin
// if not HotelData.CheckYgqx(CZY.CzyBh,'房态变更') then Exit;
//如果是免费房
if tblKfzt.FieldByName('D_KFZT').AsString = KFZT_MF then
begin
//20020627 edit by ls.
//HotelData.EmptyData('select * from KRXX where D_KRBH="'+tblKfzt.FieldByName('D_KRBH').AsString+'"');
HotelData.EmptyData('delete from KRXX where D_KRBH="'+tblKfzt.FieldByName('D_KRBH').AsString+'"');
tblKfzt.Edit;
tblKfzt.FieldByName('D_KRBH').AsString := '';
tblKfzt.FieldByName('D_KRXM').AsString := '';
tblKfzt.Post;
end;
HotelData.SetKfzt(tblKfzt.FieldByName('D_KFBH').AsString,KFZT_OK);
ShowOneKfzt(tblKfzt.FieldByName('D_KFBH').AsString);
//RefreshKfzt;
end;
//设置维修房
procedure TMainForm.menuWxfClick(Sender: TObject);
begin
// if not HotelData.CheckYgqx(CZY.CzyBh,'房态变更') then Exit;
HotelData.SetKfzt(tblKfzt.FieldByName('D_KFBH').AsString,KFZT_WX);
ShowOneKfzt(tblKfzt.FieldByName('D_KFBH').AsString);
//RefreshKfzt;
end;
//显示时间
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
lblTime.Caption := FormatDateTime('yyyymmdd hh:nn:ss',Now);
end;
//房态导航
procedure TMainForm.btnFtdhClick(Sender: TObject);
begin
FtdhForm.Show;
end;
//房态导航函数
procedure TMainForm.Ftdh;
begin
RefreshKfzt;
end;
//团队补登
procedure TMainForm.btnTdbdClick(Sender: TObject);
var
AKrbh: string;
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'接待') then Exit;
AKrbh := qryTd.FieldByName('D_KRBH').AsString;
if not CheckTd(AKrbh) then
begin
ShowWarning('该团队不存在!请刷新房态。');
Exit;
end;
if AKrbh<>'' then
begin
Tdbd(AKrbh);
if TdbdForm.ModalResult <> mrOK then
RefreshKfzt;
end;
end;
//团队退房
procedure
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -