📄 c_hoteldata.pas
字号:
tblKrzd.Filter := 'D_ZDBH='''+Result.AZdbh+'''';
tblKrzd.Filtered := True;
tblKrzd.Last; //获取帐单的下一个行号
Result.AZdhh := tblKrzd.FieldByName('D_HH').AsInteger + 1;
finally
tblKrzd.Filter := '';
tblKrzd.Filtered := False;
tblKrzd.Close;
tblKrxx.Close;
end;}
end;
//通过客人编号获取帐单编号
function THotelData.GetZdbh(const AKrbh: string): string;
begin
Result := '';
with qryUserData do
begin
Close;
SQL.Clear;
SQL.Add('select * from KRZD where (D_KRBH="'+AKrbh+'")and(D_HH=0)');
Prepare;
Open;
Result := FieldByName('D_ZDBH').AsString;
Close;
end;
{ try
try
tblKfzt.Open;
except
On E:Exception do
begin
ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblKfzt.Locate('D_KRBH',AKrbh,[]) then
Result := tblKfzt.FieldByName('D_ZDBH').AsString;
finally
tblKfzt.Close;
end;}
end;
//通过客人编号获取客房编号
function THotelData.GetKfbh(const AKrbh: string): string;
begin
Result := '';
try
try
tblKfzt.Open;
except
On E:Exception do
begin
ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblKfzt.Locate('D_KRBH',AKrbh,[]) then
Result := tblKfzt.FieldByName('D_KFBH').AsString;
finally
tblKfzt.Close;
end;
end;
//设置客房状态
procedure THotelData.SetKfzt(const AKfbh,AKfzt: string);
begin
ExecSql('update KFZT set D_KFZT="'+AKfzt+'" where D_KFBH="'+AKfbh+'"');
{try
try
tblKfzt.Open;
except
On E:Exception do
begin
ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblKfzt.FindKey([AKfbh]) then
begin
tblKfzt.Edit;
tblKfzt.FieldByName('D_KFZT').AsString := AKfzt;
tblKfzt.Post;
end;
finally
tblKfzt.Close;
end;}
end;
//清空数据库
procedure THotelData.EmptyData(const ASqlStr: string);
begin
ExecSql(ASqlStr);
{
with qryUserData do
begin
if Active then Active := False;
RequestLive := True;
SQL.Clear;
SQL.Add(ASqlStr);
try
Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
First;
while not Eof do Delete;
Close;
RequestLive := False;
end;}
end;
//备份数据库
procedure THotelData.BakData(const ASqlStr,ATableName: string);
begin
with qryUserData do
begin
if Active then Active := False;
SQL.Clear;
SQL.Add(ASqlStr);
try
Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
end;
with tblUserData do
begin
if Active then Active := False;
TableName := ATableName;
end;
BatchMove1.Mode:= batAppendUpdate;
BatchMove1.Source:= qryUserData;
BatchMove1.Destination:= tblUserData;
BatchMove1.Execute;
end;
//备份数据
procedure THotelData.BakTable(S,D: TTable);
begin
BatchMove1.Mode:= batAppendUpdate;
BatchMove1.Source:= S;
BatchMove1.Destination:= D;
BatchMove1.Execute;
end;
//结帐时,修改客人信息的离店日期和时间
procedure THotelData.UpdateKrxxJz(const AKrbh: string;ALdrq,ALdsj: TDateTime);
begin
try
try
tblKrxx.Open;
except
On E:Exception do
begin
ShowWarning('打开KRXX.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblKrxx.FindKey([AKrbh]) then
begin
tblKrxx.Edit;
tblKrxx.FieldByName('D_LDRQ').AsDateTime := ALdrq;
tblKrxx.FieldByName('D_LDSJ').AsDateTime := ALdsj;
tblKrxx.Post;
end;
finally
tblKrxx.Close;
end;
end;
//清除客房状态
procedure THotelData.ClearKfzt(const AKfbh: string);
var
s : string;
begin
s := 'update KFZT set '+
'D_ZDBH="",D_KRBH="",D_YJBH="",D_KFBZ="",D_KRXM="",'+
'D_KFZT="'+KFZT_OK+'",'+
'D_SJFJ=0,D_JJFJ=0,D_KRSL=0,D_BJS=0,D_QJS=0 '+
'where D_KFBH="'+AKfbh+'"';
ExecSql(s);
{try
try
tblKfzt.Open;
except
On E:Exception do
begin
ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblKfzt.FindKey([AKfbh]) then
begin
tblKfzt.Edit;
tblKfzt.FieldByName('D_ZDBH').AsString := '';
tblKfzt.FieldByName('D_KRBH').AsString := '';
tblKfzt.FieldByName('D_YJBH').AsString := '';
tblKfzt.FieldByName('D_KFBZ').AsString := '';
tblKfzt.FieldByName('D_KFZT').AsString := KFZT_OK;
tblKfzt.FieldByName('D_SJFJ').AsCurrency := 0;
tblKfzt.FieldByName('D_JJFJ').AsCurrency := 0;
tblKfzt.FieldByName('D_KRSL').AsInteger := 0;
tblKfzt.FieldByName('D_BJS').AsInteger := 0;
tblKfzt.FieldByName('D_QJS').AsInteger := 0;
tblKfzt.FieldByName('D_KRXM').AsString := '';
tblKfzt.Post;
end;
finally
tblKfzt.Close;
end;}
end;
//初始化客房状态
procedure THotelData.InitKfzt(const AKfbh: string);
var
s : string;
begin
s := 'update KFZT set '+
'D_ZDBH="",D_KRBH="",D_YJBH="",D_KFBZ="",'+
'D_KFZT="'+KFZT_ZK+'",'+
'D_SJFJ=0,D_KRSL=0,D_KRXM="" '+
'where D_KFBH="'+AKfbh+'"';
ExecSql(s);
{try
try
tblKfzt.Open;
except
On E:Exception do
begin
ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblKfzt.FindKey([AKfbh]) then
begin
tblKfzt.Edit;
tblKfzt.FieldByName('D_ZDBH').AsString := '';
tblKfzt.FieldByName('D_KRBH').AsString := '';
tblKfzt.FieldByName('D_YJBH').AsString := '';
tblKfzt.FieldByName('D_KFBZ').AsString := '';
tblKfzt.FieldByName('D_KFZT').AsString := KFZT_ZK;
tblKfzt.FieldByName('D_SJFJ').AsCurrency := 0;
tblKfzt.FieldByName('D_KRSL').AsInteger := 0;
//tblKfzt.FieldByName('D_JJFJ').AsCurrency := 0;
//tblKfzt.FieldByName('D_BJS').AsInteger := 0;
//tblKfzt.FieldByName('D_QJS').AsInteger := 0;
tblKfzt.FieldByName('D_KRXM').AsString := '';
tblKfzt.Post;
end;
finally
tblKfzt.Close;
end;}
end;
//初始化客房状态
procedure THotelData.InitKfztOK(const AKfbh: string);
var
s : string;
begin
s := 'update KFZT set '+
'D_ZDBH="",D_KRBH="",D_YJBH="",D_KFBZ="",'+
'D_KFZT="'+KFZT_OK+'",'+
'D_SJFJ=0,D_KRSL=0,D_KRXM="" '+
'where D_KFBH="'+AKfbh+'"';
ExecSql(s);
{try
try
tblKfzt.Open;
except
On E:Exception do
begin
ShowWarning('打开KFZT.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblKfzt.FindKey([AKfbh]) then
begin
tblKfzt.Edit;
tblKfzt.FieldByName('D_ZDBH').AsString := '';
tblKfzt.FieldByName('D_KRBH').AsString := '';
tblKfzt.FieldByName('D_YJBH').AsString := '';
tblKfzt.FieldByName('D_KFBZ').AsString := '';
tblKfzt.FieldByName('D_KFZT').AsString := KFZT_ZK;
tblKfzt.FieldByName('D_SJFJ').AsCurrency := 0;
tblKfzt.FieldByName('D_KRSL').AsInteger := 0;
//tblKfzt.FieldByName('D_JJFJ').AsCurrency := 0;
//tblKfzt.FieldByName('D_BJS').AsInteger := 0;
//tblKfzt.FieldByName('D_QJS').AsInteger := 0;
tblKfzt.FieldByName('D_KRXM').AsString := '';
tblKfzt.Post;
end;
finally
tblKfzt.Close;
end;}
end;
//获取最大的帐单行号
function THotelData.GetMaxZdhh(const AZdbh: string): Integer;
begin
with qryUserData do
begin
if Active then Active := False;
SQL.Clear;
SQL.Add('select max(D_HH) from KRZD where D_ZDBH="'+AZdbh+'"');
try
Open;
except
On E:Exception do
begin
ShowWarning('打开KRZD.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if Fields[0].IsNull then Result := 1
else Result := Fields[0].AsInteger + 1;
Close;
end;
end;
//添加额外费
procedure THotelData.UpdateEwfDbf(const AJzbh,AKrxm: string;AEwf: Currency;AJzrq,AJzsj: TDateTime);
begin
if not tblEwf.Active then
try
tblEwf.Open;
except
On E:Exception do
begin
ShowWarning('打开EWF.DB出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblEwf.FindKey([AJzbh]) then
begin
tblEwf.Edit;
tblEwf.FieldByName('D_EWF').AsCurrency :=
tblEwf.FieldByName('D_EWF').AsCurrency + AEwf;
tblEwf.Post;
end
else
begin
tblEwf.Insert;
tblEwf.FieldByName('D_JZBH').AsString := AJzbh;
tblEwf.FieldByName('D_KRXM').AsString := AKrxm;
tblEwf.FieldByName('D_EWF').AsCurrency := AEwf;
tblEwf.FieldByName('D_JZRQ').AsDateTime := AJzrq;
tblEwf.FieldByName('D_JZSJ').AsDateTime := AJzsj;
tblEwf.Post;
end;
//tblEwf.ApplyUpdates;
//tblEwf.CommitUpdates;
tblEwf.Close;
end;
//通过客房编号获取客房信息
function THotelData.GetKfxx1(const AKfbh: string): TKFXX;
begin
try
try
tblKfzt.Open;
tblKrxx.Open;
//tblKryj.Open;
//tblKrzd.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
if tblKfzt.FindKey([AKfbh]) then
begin
Result.AKfbh := AKfbh;
//Result.AZdbh := tblKfzt.FieldByName('D_ZDBH').AsString;
Result.AKrbh := tblKfzt.FieldByName('D_KRBH').AsString;
//Result.AYjbh := tblKfzt.FieldByName('D_YJBH').AsString;
Result.AKfbz := tblKfzt.FieldByName('D_KFBZ').AsString;
Result.ASjfj := tblKfzt.FieldByName('D_SJFJ').AsCurrency;
if tblKrxx.FindKey([Result.AKrbh]) then
begin
Result.AKrxm := tblKrxx.FieldByName('D_KRXM').AsString;
//Result.AKrlx := tblKrxx.FieldByName('D_KRLX').AsString;
Result.ADdrq := tblKrxx.FieldByName('D_DDRQ').AsDateTime;
Result.ADdsj := tblKrxx.FieldByName('D_DDSJ').AsDateTime;
end;
{if tblKryj.FindKey([Result.AYjbh,0]) then
begin
Result.AFkfs := tblKryj.FieldByName('D_FKFS').AsString;
Result.AYfrq := tblKryj.FieldByName('D_YFRQ').AsDateTime;
Result.AYfsj := tblKryj.FieldByName('D_YFSJ').AsDateTime;
end;
if tblKrzd.FindKey([Result.AZdbh,0]) then
begin
Result.AZdlb := tblKrzd.FieldByName('D_ZDLB').AsString;
Result.AXfje := tblKrzd.FieldByName('D_XFJE').AsCurrency;
end;
Result.AZdhh := GetMaxZdhh(Result.AZdbh);}
end;
finally
//tblKfzt.Close;
//tblKrxx.Close;
//tblKryj.Close;
//tblKrzd.Close;
end;
end;
//通过客房编号获取客房信息
function THotelData.GetKfxx(const AKfbh: string): TKFXX;
begin
try
try
tblKfzt.Open;
tblKrxx.Open;
tblKryj.Open;
tblKrzd.Open;
except
On E:Exception do
begin
ShowWarning('打开数据库出错,请检查网络连接是否正常!'
+#13#10
+'错误信息:'
+E.Message);
raise;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -