📄 c_main.pas
字号:
procedure TMainForm.N85Click(Sender: TObject);
var
AKrbh: string;
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
AKrbh := YdxxSel;
if AKrbh<>'' then
begin
YdcyskNew(AKrbh);
ShowYdcy(FSjdm);
end;
end;
//团队预定餐饮
procedure TMainForm.N86Click(Sender: TObject);
var
AKrbh: string;
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
AKrbh := YdxxSel;
if AKrbh<>'' then
begin
YdcytdNew(AKrbh);
qryCyTdMaster.Close;
qryCyTdMaster.Open;
end;
end;
//散客预定客房
procedure TMainForm.N87Click(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
YdkfskNew;
ShowYdkf;
end;
//团队预定客房
procedure TMainForm.N88Click(Sender: TObject);
var
AKrbh: string;
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
AKrbh := YdxxSel;
if AKrbh<>'' then
begin
YdkftdNew(AKrbh);
ShowYdkf;
end;
end;
//预定清理
procedure TMainForm.A18Click(Sender: TObject);
var
s: string;
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'预定') then Exit;
s := 'delete from YDHC where (D_SYRQ<:D)and(D_RZBZ="F")';
with HotelData.qryUserData do
begin
if Active then Active := False;
SQL.Clear;
SQL.Add(s);
Params[0].DataType := ftDate;
Params[0].Value := Date;
ExecSQL;
Close;
end;
s := 'delete from YDCY where D_SYRQ<:D';
with HotelData.qryUserData do
begin
if Active then Active := False;
SQL.Clear;
SQL.Add(s);
Params[0].DataType := ftDate;
Params[0].Value := Date;
ExecSQL;
Close;
end;
s := 'delete from YDKF where D_DDRQ<:D';
with HotelData.qryUserData do
begin
if Active then Active := False;
SQL.Clear;
SQL.Add(s);
Params[0].DataType := ftDate;
Params[0].Value := Date;
ExecSQL;
Close;
end;
s := 'delete from YDXX '
+'where (D_KRBH not in (select D_KRBH from YDHC))'
+'and(D_KRBH not in (select D_KRBH from YDCY))'
+'and(D_KRBH not in (select D_KRBH from YDKF))';
with HotelData.qryUserData do
begin
if Active then Active := False;
SQL.Clear;
SQL.Add(s);
ExecSQL;
Close;
end;
ShowYdhc;
ShowYdcy(FSjdm);
ShowYdkf;
end;
//客人留言
procedure TMainForm.N33Click(Sender: TObject);
begin
// if not HotelData.CheckYgqx(CZY.CzyBh,'查询') then Exit;
Krly;
end;
//电话号码
procedure TMainForm.N81Click(Sender: TObject);
begin
// if not HotelData.CheckYgqx(CZY.CzyBh,'查询') then Exit;
Dhhm;
end;
//列车时刻
procedure TMainForm.N34Click(Sender: TObject);
begin
// if not HotelData.CheckYgqx(CZY.CzyBh,'查询') then Exit;
Lcsk;
end;
//航班时刻
procedure TMainForm.N35Click(Sender: TObject);
begin
// if not HotelData.CheckYgqx(CZY.CzyBh,'查询') then Exit;
Hbsk;
end;
//员工开房报表
procedure TMainForm.N57Click(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'报表') then Exit;
Ygkf;
end;
//电话计费系统
procedure TMainForm.N80Click(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'电话计费系统') then Exit;
WinExec('LfHotelJf.exe',SW_SHOWNORMAL);
end;
//关于
procedure TMainForm.H13Click(Sender: TObject);
begin
About;
end;
//数据备份
procedure TMainForm.G19Click(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'系统') then Exit;
BakDbfData;
end;
//贵宾卡管理系统
procedure TMainForm.N15Click(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'贵宾卡管理系统') then Exit;
WinExec('LfHotelIc.exe',SW_SHOWNORMAL);
end;
//口令设置
procedure TMainForm.G21Click(Sender: TObject);
begin
Klsz(CZY.CzyBh);
end;
//登录
procedure TMainForm.FormShow(Sender: TObject);
begin
if not CzyDl then
Application.Terminate;
Caption := HOTEL_NAME + '(操作员:' + CZY.CzyXm+')';
end;
//重新登录
procedure TMainForm.G22Click(Sender: TObject);
begin
if not Czydl then
Application.Terminate;
Caption := HOTEL_NAME + '(操作员:' + CZY.CzyXm+')';
end;
//电话费报表
procedure TMainForm.N52Click(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'报表') then Exit;
DhfBrow;
end;
//信息导出
procedure TMainForm.B21Click(Sender: TObject);
var
F: TextFile;
s: string;
begin
if SaveDialog1.Execute then
begin
WaitForm := TWaitForm.Create(Application);
try
WaitForm.FTitle := '正在信息导出';
WaitForm.Show;
WaitForm.Update;
AssignFile(F,SaveDialog1.FileName);
ReWrite(F);
s := '';
with HotelData.tblXxdc do
begin
try
Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
//事务启动
HotelData.DatabaseUser.StartTransaction;
try
First;
while not Eof do
begin
s := '';
s := s + '"' +FieldByName('D_KRXM').AsString+ '"'+Chr(9);
s := s + '"' +FieldByName('D_XB').AsString + '"'+Chr(9);
s := s + '"' +FieldByName('D_MZ').AsString + '"'+Chr(9);
s := s + '"' +FieldByName('D_CSNY').AsString +'"'+Chr(9);
s := s + '"' +FieldByName('D_ZJLX').AsString +'"'+Chr(9);
s := s + '"' +FieldByName('D_ZJHM').AsString +'"'+Chr(9);
s := s + '"' +FieldByName('D_GZDW').AsString +'"'+Chr(9);
s := s + '"' +FieldByName('D_JTDZ').AsString +'"'+Chr(9);
s := s + '"' +FieldByName('D_DDRQ').AsString +'0800"'+Chr(9);
s := s + '"' +FieldByName('D_KFBH').AsString +'"'+Chr(9);
s := s + '"' +FieldByName('D_ZY').AsString +'"'+Chr(13);
WriteLn(F,s);
Next;
end;
HotelData.ExecSql('delete from XXDC where D_LDRQ<>""');
//事务提交
HotelData.DatabaseUser.Commit;
except
//事务回滚
HotelData.DatabaseUser.Rollback;
raise;
end;
Close;
end;
CloseFile(F);
finally
WaitForm.Hide;
WaitForm.Free;
end;
ShowMessage('信息导出完成!');
end;
end;
//散客取消房间
procedure TMainForm.N38Click(Sender: TObject);
begin
if not HotelData.CheckYgqx(CZY.CzyBh,'散客取消') then Exit;
Skqx;
end;
//帮助
procedure TMainForm.H11Click(Sender: TObject);
begin
Application.HelpCommand(HELP_CONTENTS,0);
end;
//客房状态初始化
procedure TMainForm.KfztInit;
begin
PageControl1.ActivePageIndex := 0;
dtpYdrq.Date := Date;
dtpCyyd.Date := Date;
try
tblKfzt.Open;
qryXxbd.Open;
qryTd.Open;
qryYdhc.Close;
qryYdhc.SQL.Clear;
qryYdhc.SQL.Add('select * from YDHC where (D_SYRQ>=:RQ)and(D_JSBZ="1") order by D_SYRQ,D_SYSJ');
qryYdhc.ParamByName('RQ').AsDate := Date;
qryYdhc.Open;
qryYdcy.Open;
qryYdkf.Open;
qryCyTdMaster.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
ShowKfzt;
ShowRzl;
ShowYdhc;
ShowYdcy(FSjdm);
ShowYdkf;
end;
//获取团队信息 包含消费、押金等
procedure TMainForm.GetTdInfo;
var
I : Integer;
//ADtfj : Currency;
s : string;
//AKfxx : TKfxx;
begin
//团队信息刷新
with qryTd1 do
begin
Close;
SQL.Clear;
s := 'select * from krxx where (d_krlx="T") and (d_krbh in (select d_krbh from kfzt))';
SQL.Add(s);
Open;
FTdNum := RecordCount;
SetLength(FTdInfo,FTdNum);
i := 0;
First;
while not Eof do
begin
FTdInfo[i].ATdxx := HotelData.GetTdxx(FieldByName('D_KRBH').AsString);
//ADtfj := 0;
{FTdInfo[i].AYfje := HotelData.SumJe('select sum(D_YFJE) from KRYJ where (D_YJBH="'
+FTdInfo[i].ATdxx.AYjbh+'")and(D_FKFS="'+FKFS_RMB+'")');
FTdInfo[i].AXfje := HotelData.SumJe('select sum(D_XFJE) from KRZD where (D_ZDBH="'
+FTdInfo[i].ATdxx.AZdbh+'")and(D_JZBZ<>"'+JZ_YX+'")and(D_HH<>0)') + ADtfj;
}
Next;
Inc(i);
end;
end;
//太慢
{
if qryKfzt.Active then qryKfzt.Active := False;
qryKfzt.ParamByName('KRBH').AsString := FTdInfo[i].ATdxx.AKrbh;
try
qryKfzt.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
qryKfzt.First;
while not qryKfzt.Eof do
begin
AKfxx := HotelData.GetKfxx(qryKfzt.FieldByName('D_KFBH').AsString);
//获取当天房价
ADtfj := ADtfj + GetDtfj(AKfxx.ADdsj,Time,AKfxx.AKfbz,AKfxx.ASjfj);
qryKfzt.Next;
end;
qryKfzt.Close;
}
end;
//当天是否有预定客房
function TMainForm.IsYdkf(const AKfbh: string): Boolean;
begin
Result := False;
if qryYdkf.Locate('D_KFBH',AKfbh,[]) then
if qryYdkf.FieldByName('D_DDRQ').AsString=DateToStr(Date) then
Result := True;
end;
{
//判断散客押金催交
function TMainForm.IsYjcj(const AKfbh: string): Boolean;
var
AKfxx : TKfxx;
ADtfj,AYfje,AXfje : Currency;
begin
Result:= False;
AKfxx := HotelData.GetKfxx(AKfbh);
ADtfj := GetDtfj(AKfxx.ADdsj,Time,AKfxx.AKfbz,AKfxx.ASjfj);
AYfje := HotelData.SumJe('select sum(D_YFJE) from KRYJ where (D_YJBH="'
+AKfxx.AYjbh+'")and(D_FKFS="'+FKFS_RMB+'")');
AXfje := HotelData.SumJe('select sum(D_XFJE) from KRZD where (D_ZDBH="'
+AKfxx.AZdbh+'")and(D_HH<>0)');
if (AYfje<>0)and((AXfje+ADtfj)>(AYfje-100)) then
Result := True;
end;
}
//刷新客房状态
procedure TMainForm.RefreshKfzt;
begin
WaitForm := TWaitForm.Create(Application);
try
WaitForm.FTitle := '刷新客房房态';
WaitForm.Show;
WaitForm.Update;
ShowKfzt;
ShowRzl;
finally
WaitForm.Hide;
WaitForm.Free;
end;
end;
//显示单个客房状态
procedure TMainForm.ShowOneKfzt(const AKfbh: string);
var
i,j : Integer;
begin
tblKfzt.Refresh;
if tblKfzt.Locate('D_KFBH',AKfbh,[]) then
begin
i := FindKfbhId(AKfbh);
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;
//判断是否被预定
{if IsYdkf(FKfzt[i].AKfbh) then
FKfzt[i].AYdbz := '★'
else
FKfzt[i].AYdbz := '';}
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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -