?? c_yjsh.pas
字號:
unit C_Yjsh;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, C_StdJd, DosMove, StdCtrls, Buttons, ExtCtrls, DB, DBTables, C_Define,
ComCtrls, DateUtils;
type
TYjshForm = class(TStdJdForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
qryKfztsk: TQuery;
qryKfzttd: TQuery;
qryKrxxtd: TQuery;
tblKrzd: TTable;
qryZd: TQuery;
tblYytj: TTable;
qryJz: TQuery;
tblYytjda: TTable;
tblKrjz: TTable;
tblKrjzda: TTable;
tblXmdm: TTable;
tblLkyskz: TTable;
tblLkyskzda: TTable;
qryLkyskz: TQuery;
ProgressBar1: TProgressBar;
tblSjtj: TTable;
qryUser: TQuery;
tblJzfltj: TTable;
tblYssj: TTable;
procedure btnOKClick(Sender: TObject);
private
{ Private declarations }
FYsrq: string;
FJryy: Currency;
FJrsh: Currency;
FJryh: Currency;
FZrbyyy: Currency;
FZrbyyh: Currency;
FZrljyy: Currency;
FZrljyh: Currency;
FZrljsh: Currency;
FZrljys: Currency;
//FJjfj: Currency;
//FYjfj: Currency;
FSkfj: Currency;
FTdfj: Currency;
FWbfj: Currency;
FFjze: Currency;
FBqf : Currency;
FSjcwe: Currency;
FCtsje: Currency;
FCtshe: Currency;
FLkysk: Currency;
FKhysk: Currency;
FJrshyjk : Currency;
FSjyjk: Currency;
FDbf : Currency;
FYjkkc: Currency;
FBmbh: string;
FRpjj: Currency;
FRpjzkl : Double;
procedure OpenTable;
procedure CloseTable;
procedure UpdateFj;
procedure AddSkfj(AKfxx: TKfxx);
procedure AddTdfj;
procedure UpdateKfztSk;
procedure UpdateKfztTd;
procedure UpdateKfzt;
procedure UpdateKrzd;
procedure EmptyKrzd;
procedure UpdateKrjz;
procedure InitYytj;
procedure InitYytjRecord(const AXmbh: string);
procedure UpdateYytj;
procedure InitLkyskz;
procedure UpdateLkyskz;
procedure InitLctj;
procedure UpdateLctj;
procedure UpdateSjtj;
procedure UpdateCwjs;
procedure UpdateYjk;
procedure UpdateJzfltj;
function SumSjcwe: Currency;
function SumCtsje: Currency;
function SumCtshe: Currency;
function SumLkysk: Currency;
function SumKhysk: Currency;
function SumJrshyjk : Currency;
function SumSjyjk: Currency;
//function GetJjfj: Currency;
//function GetYjfj: Currency;
function GetFjze: Currency;
function GetYsrq: string;
function IsCtjz: Boolean;
procedure UpdateCy;
procedure EmptyBqj;
procedure BakData;
procedure Backup;
procedure SetYssj;
public
{ Public declarations }
end;
var
YjshForm: TYjshForm;
procedure Yjsh;
implementation
uses C_HotelData;
{$R *.dfm}
procedure Yjsh;
begin
YjshForm := TYjshForm.Create(Application);
try
with YjshForm do
begin
OpenTable;
FYsrq := GetYsrq;
if tblYytj.FindKey([FYsrq,'0']) then
begin
ShowWarning('你今天已經夜審過了!');
Exit;
end;
//edit by ls 20021120
if not IsCtjz then
begin
if not Confirm('餐廳可能尚有未結賬的餐臺,是否繼續夜審!') then
Exit;
end;
ShowModal;
end;
finally
YjshForm.CloseTable;
YjshForm.Free;
end;
end;
procedure TYjshForm.SetYssj;
begin
tblYssj.Open;
if tblYssj.IsEmpty then
begin
tblYssj.Insert;
tblYssj.FieldByName('D_YSSJ').AsString := FormatDateTime('hhnnss',Time);
tblYssj.Post;
end
else
begin
tblYssj.Last;
tblYssj.Edit;
tblYssj.FieldByName('D_YSSJ').AsString := FormatDateTime('hhnnss',Time);
tblYssj.Post;
end;
tblYssj.Close;
end;
procedure TYjshForm.UpdateYjk;
var
s : string;
begin
s := 'update YJK set D_YSRQ="'+FYsrq+'" where D_YSRQ is null';
HotelData.ExecSql(s);
end;
function TYjshForm.IsCtjz: Boolean;
begin
Result := True;
with HotelData.qryUserData do
begin
if Active then Active := False;
SQL.Clear;
SQL.Add('select * from CTDC where D_JZFS is null');
Open;
if not IsEmpty then
Result := False;
Close;
end;
end;
procedure TYjshForm.OpenTable;
begin
try
qryKfztSk.Open;
qryKfztTd.Open;
qryKrxxTd.Open;
tblKrzd.Open;
tblYytj.Open;
tblXmdm.Open;
except
On E:Exception do
begin
ShowWarning('打開數據庫出錯,請檢查網絡連接是否正常!'
+#13#10
+'錯誤信息:'
+E.Message);
raise;
end;
end;
end;
procedure TYjshForm.CloseTable;
begin
qryKfztSk.Close;
qryKfztTd.Close;
qryKrxxTd.Close;
tblKrzd.Close;
tblYytj.Close;
tblXmdm.Close;
end;
//初始化樓層統計
procedure TYjshForm.InitLctj;
begin
with HotelData do
begin
//備份樓層統計
BakTable(tblLctj,tblLctjda);
//ExecSql('delete from LCTJ');
try
try
tblLctj.Open;
tblLcdm.Open;
except
On E:Exception do
begin
ShowWarning('打開數據庫出錯,請檢查網絡連接是否正常!'
+#13#10
+'錯誤信息:'
+E.Message);
raise;
end;
end;
tblLcdm.First;
while not tblLcdm.Eof do
begin
if not tblLctj.Locate('D_LCBH',tblLcdm.FieldByName('D_LCBH').AsString,[]) then
begin
tblLctj.Insert;
tblLCtj.FieldByName('D_YSRQ').AsString := FYsrq;
tblLctj.FieldByName('D_LCBH').AsString := tblLcdm.FieldByName('D_LCBH').AsString;
tblLctj.Post;
end
else
begin
tblLctj.Edit;
tblLctj.FieldByName('D_YSRQ').AsString := FYsrq;
tblLctj.Post;
end;
tblLcdm.Next;
end;
if not tblLctj.Locate('D_LCBH','0',[]) then
begin
tblLctj.Insert;
tblLCtj.FieldByName('D_YSRQ').AsString := FYsrq;
tblLctj.FieldByName('D_LCBH').AsString := '0';
tblLctj.Post;
end
else
begin
tblLctj.Edit;
tblLctj.FieldByName('D_YSRQ').AsString := FYsrq;
tblLctj.Post;
end;
finally
tblLctj.Close;
tblLcdm.Close;
end;
end;
end;
//樓層統計
procedure TYjshForm.UpdateLctj;
var
SqlStr : string;
SumFjs,SumBjs,SumQjs: Integer;
SumCzs : Double;
SumJjfj,SumFj: Currency;
begin
SumFjs:=0;SumCzs:=0;SumBjs:=0;SumQjs:=0;SumJjfj:=0;SumFj:=0;
with HotelData do
begin
try
try
tblLctj.Open;
//edit by ls. 2003.03.27
//SqlStr := 'select D_LCBH,count(*),sum(D_KRSL),sum(D_BJS),sum(D_QJS),sum(D_JJFJ),sum(D_SJFJ) from KFZT where D_KFZT<>"R" group by D_LCBH';
SqlStr := 'select D_LCBH,count(*),sum(D_KRSL),sum(D_BJS),sum(D_QJS),sum(D_JJFJ),sum(D_SJFJ) from KFZT group by D_LCBH';
if qrySysData.Active then qrySysData.Active := False;
qrySysData.SQL.Clear;
qrySysData.SQL.Add(SqlStr);
qrySysData.Open;
except
On E:Exception do
begin
ShowWarning('打開數據庫出錯,請檢查網絡連接是否正常!'
+#13#10
+'錯誤信息:'
+E.Message);
raise;
end;
end;
qrySysData.First;
while not qrySysData.Eof do
begin
if tblLctj.FindKey([FYsrq,qrySysData.Fields[0].AsString]) then
begin
tblLctj.Edit;
tblLctj.FieldByName('D_FJS').AsInteger := qrySysData.Fields[1].AsInteger;
tblLctj.FieldByName('D_CZS').AsFloat := qrySysData.Fields[2].AsFloat+qrySysData.Fields[3].AsFloat*0.5+qrySysData.Fields[4].AsFloat;
tblLctj.FieldByName('D_BJS').AsInteger := qrySysData.Fields[3].AsInteger;
tblLctj.FieldByName('D_QJS').AsInteger := qrySysData.Fields[4].AsInteger;
tblLctj.FieldByName('D_JJFJ').AsCurrency := qrySysData.Fields[5].AsCurrency+qrySysData.Fields[6].AsCurrency;
tblLctj.FieldByName('D_RCZL').AsFloat := tblLctj.FieldByName('D_CZS').AsFloat/qrySysData.Fields[1].AsInteger;
SumFjs := SumFjs + qrySysData.Fields[1].AsInteger;
SumCzs := SumCzs + tblLctj.FieldbyName('D_CZS').AsFloat;
SumBjs := SumBjs + qrySysData.Fields[3].AsInteger;
SumQjs := SumQjs + qrySysData.Fields[4].AsInteger;
SumJjfj:= SumJjfj + qrySysData.Fields[5].AsCurrency;
SumFj := SumFj + qrySysData.Fields[6].AsCurrency;
tblLctj.Post;
end;
qrySysData.Next;
end;
if tblLctj.FindKey([FYsrq,'0']) then
begin
tblLctj.Edit;
tblLctj.FieldByName('D_FJS').AsInteger := SumFjs;
tblLctj.FieldByName('D_CZS').AsFloat := SumCzs;
tblLctj.FieldByName('D_BJS').AsInteger := SumBjs;
tblLctj.FieldByName('D_QJS').AsInteger := SumQjs;
tblLctj.FieldByName('D_JJFJ').AsCurrency := SumJjfj+SumFj;
//edit by ls.2002.11.02應盛總要求修改總房數為141
tblLctj.FieldByName('D_RCZL').AsFloat := SumCzs/141;
//tblLctj.FieldByName('D_RCZL').AsFloat := SumCzs/SumFjs;
tblLctj.Post;
if tblLctj.FieldByName('D_CZS').AsFloat <> 0 then
FRpjj := tblLctj.FieldByName('D_JJFJ').AsCurrency / tblLctj.FieldByName('D_CZS').AsFloat
else
FRpjj := 0;
FRpjzkl := tblLctj.FieldByName('D_RCZL').AsFloat;
FBqf := SumJjfj;
FDbf := SumCzs*2;
end;
finally
tblLctj.Close;
qrySysData.Close;
end;
end;
end;
//獲取夜審日期
function TYjshForm.GetYsrq: string;
begin
Result := FormatDateTime('yyyymmdd',Date);
end;
//初始化營業統計記錄
procedure TYjshForm.InitYytjRecord(const AXmbh: string);
begin
if tblYytj.Locate('D_XMBH',AXmbh,[]) then
begin
tblYytj.Edit;
tblYytj.FieldByName('D_YSRQ').AsString := FYsrq;
tblYytj.FieldByName('D_JRYY').AsCurrency := 0;
tblYytj.FieldByName('D_JRSH').AsCurrency := 0;
tblYytj.FieldByName('D_JRYH').AsCurrency := 0;
//如果是月初
if Copy(FYsrq,7,2)='01' then
begin
tblYytj.FieldByName('D_ZRBYYY').AsCurrency := 0;
tblYytj.FieldByName('D_ZRBYYH').AsCurrency := 0;
end
else
begin
tblYytj.FieldByName('D_ZRBYYY').AsCurrency := tblYytj.FieldByName('D_BYYY').AsCurrency;
tblYytj.FieldByName('D_ZRBYYH').AsCurrency := tblYytj.FieldByName('D_BYYH').AsCurrency;
end;
tblYytj.FieldByName('D_ZRLJYY').AsCurrency := tblYytj.FieldByName('D_LJYY').AsCurrency;
tblYytj.FieldByName('D_ZRLJYH').AsCurrency := tblYytj.FieldByName('D_LJYH').AsCurrency;
tblYytj.FieldByName('D_ZRLJSH').AsCurrency := tblYytj.FieldByName('D_LJSH').AsCurrency;
tblYytj.FieldByName('D_ZRLJYS').AsCurrency := tblYytj.FieldByName('D_LJYS').AsCurrency;
tblYytj.Post;
end
else
begin
tblYytj.Insert;
tblYytj.FieldByName('D_XMBH').AsString := AXmbh;
tblYytj.FieldByName('D_YSRQ').AsString := FYsrq;
tblYytj.FieldByName('D_JRYY').AsCurrency := 0;
tblYytj.FieldByName('D_JRSH').AsCurrency := 0;
tblYytj.FieldByName('D_JRYH').AsCurrency := 0;
tblYytj.FieldByName('D_ZRBYYY').AsCurrency := 0;
tblYytj.FieldByName('D_ZRBYYH').AsCurrency := 0;
tblYytj.FieldByName('D_ZRLJYY').AsCurrency := 0;
tblYytj.FieldByName('D_ZRLJYH').AsCurrency := 0;
tblYytj.FieldByName('D_ZRLJSH').AsCurrency := 0;
tblYytj.FieldByName('D_ZRLJYS').AsCurrency := 0;
tblYytj.FieldByName('D_BYYY').AsCurrency := 0;
tblYytj.FieldByName('D_BYYH').AsCurrency := 0;
tblYytj.FieldByName('D_LJYY').AsCurrency := 0;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -