📄 c_fcfjz.pas
字号:
unit C_Fcfjz;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DosMove, DB, DBTables, C_CtDefine, Grids, DBGrids, StdCtrls,
Buttons, ExtCtrls;
type
TFcfJzForm = class(TForm)
tblCtjz: TTable;
tblCtjzD_XMMC: TStringField;
dsCtjz: TDataSource;
tblCtxm: TTable;
DosMove1: TDosMove;
tblKrxx: TTable;
tblKrzd: TTable;
tblKrjz: TTable;
tblCtdc: TTable;
tblYsk: TTable;
Panel1: TPanel;
lblTitle: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
lblXfje: TLabel;
lblSjje: TLabel;
radJzfs: TRadioGroup;
cmbJz: TComboBox;
Panel3: TPanel;
btnOk: TBitBtn;
btnCanc: TBitBtn;
Panel2: TPanel;
DBGrid1: TDBGrid;
lblYhje: TLabel;
btnPrint: TBitBtn;
Bevel1: TBevel;
tblCtjzD_XMBH: TStringField;
tblCtjzD_XFJE: TFloatField;
tblCtjzD_YHJE: TFloatField;
tblCtjzD_BZ: TStringField;
procedure tblCtjzAfterPost(DataSet: TDataSet);
procedure tblCtjzD_XFJEValidate(Sender: TField);
procedure tblCtjzD_YHJEValidate(Sender: TField);
procedure radJzfsClick(Sender: TObject);
procedure btnOkClick(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
procedure tblCtjzBeforeInsert(DataSet: TDataSet);
procedure tblCtjzBeforeDelete(DataSet: TDataSet);
private
{ Private declarations }
FXfje: Currency;
FYhje: Currency;
FSjje: Currency;
//FKcje: Currency;
FJzfs: string;
FXykbh: string;
FKhbh: string;
FKfbh: string;
FKrbh: string;
FBmbh: string;
FZdbh: string;
FJzbh: string;
IsAppend : Boolean;
FGbkJzxx : TGbkJzxx;
procedure GetJzje;
procedure ShowJzxx;
procedure SumJe;
procedure GetTdmc;
function IsValid: Boolean;
procedure UpdateKrzd;
procedure UpdateKrjz;
procedure UpdateCtdc(const ABz: string);
procedure UpdateGz(const AZdbh,AZdlb: string);
procedure UpdateYsk;
public
{ Public declarations }
end;
var
FcfJzForm: TFcfJzForm;
procedure Fcfjz;
implementation
uses C_CtData, C_Sysprint, C_CardXf;
{$R *.dfm}
procedure Fcfjz;
begin
FcfjzForm := TFcfjzForm.Create(Application);
try
with FcfjzForm do
begin
FBmbh := CtData.FindBh('YGDA','D_BMBH','D_YGBH',CZY.CzyBh);
FJzfs := JZFS_RMB;
radJzfs.ItemIndex := 0;
GetJzje;
ShowJzxx;
tblCtjz.Close;
tblCtjz.Open;
ShowModal;
end;
finally
FcfjzForm.tblCtjz.Close;
FcfjzForm.Free;
end;
end;
procedure TFcfJzForm.GetJzje;
begin
FXfje := 0;
FYhje := 0;
tblCtjz.Close;
tblCtjz.EmptyTable;
IsAppend := True;
tblCtjz.Open;
try
tblCtxm.Open;
tblCtxm.First;
while not tblCtxm.Eof do
begin
tblCtjz.Insert;
tblCtjzD_XMBH.Value := tblCtxm.FieldByName('D_XMBH').AsString;
tblCtjz.Post;
tblCtxm.Next;
end;
finally
IsAppend := False;
tblCtxm.Close;
end;
end;
procedure TFcfJzForm.ShowJzxx;
begin
FSjje := FXfje - FYhje;
lblXfje.Caption := CurrToStr(FXfje)+'元';
lblYhje.Caption := CurrToStr(FYhje)+'元';
lblSjje.Caption := CurrToStr(FSjje)+'元';
end;
procedure TFcfJzForm.SumJe;
var
PrevRecord: TBookMark;
AXfje,AYhje : Currency;
begin
PrevRecord := tblCtjz.GetBookmark;
try
tblCtjz.DisableControls;
AXfje := 0;
AYhje := 0;
tblCtjz.First;
while not tblCtjz.Eof do
begin
AXfje := AXfje + tblCtjzD_XFJE.Value;
AYhje := AYhje + tblCtjzD_YHJE.Value;
tblCtjz.Next;
end;
FXfje := AXfje;
FYhje := AYhje;
ShowJzxx;
finally
tblCtjz.EnableControls;
if PrevRecord<>nil then
begin
tblCtjz.GotoBookmark(PrevRecord);
tblCtjz.FreeBookmark(PrevRecord);
end;
end;
end;
procedure TFcfJzForm.tblCtjzAfterPost(DataSet: TDataSet);
begin
if not IsAppend then
SumJe;
end;
procedure TFcfJzForm.tblCtjzD_XFJEValidate(Sender: TField);
begin
if tblCtjzD_XFJE.Value < 0 then
raise Exception.Create('消费金额不能小于零!');
end;
procedure TFcfJzForm.tblCtjzD_YHJEValidate(Sender: TField);
begin
if (tblCtjzD_YHJE.Value<0)or(tblCtjzD_YHJE.Value>tblCtjzD_XFJE.Value) then
raise Exception.Create('优惠金额必须大于零小于消费金额!');
end;
procedure TFcfjzForm.GetTdmc;
begin
tblKrxx.Open;
tblKrxx.Filter := 'D_KRLX=''T''';
tblKrxx.Filtered := True;
tblKrxx.First;
while not tblKrxx.Eof do
begin
cmbJz.Items.Add(tblKrxx.FieldByName('D_KRXM').AsString);
tblKrxx.Next;
end;
tblKrxx.Filter := '';
tblKrxx.Filtered := False;
tblKrxx.Close;
end;
procedure TFcfJzForm.radJzfsClick(Sender: TObject);
begin
cmbJz.Items.Clear;
cmbJz.Style := csDropDownList;
case radJzfs.ItemIndex of
0: FJzfs := JZFS_RMB;
1:
begin
CtData.ListMc(cmbJz,'XYK','D_XYKMC');
FJzfs := JZFS_XYK;
end;
2: FJzfs := JZFS_ZP;
3:
begin
cmbJz.Style := csDropDown;
CtData.ListDm(cmbJz,'KHDA','D_KHMC');
FJzfs := JZFS_JZ;
end;
4:
begin
cmbJz.Style := csDropDown;
FJzfs := JZFS_GSK;
end;
5:
begin
GetTdmc;
FJzfs := JZFS_GTD;
end;
6:
begin
FJzfs := JZFS_ZD;
end;
7: FJzfs := JZFS_GBK;
end;
end;
function TFcfjzForm.IsValid: Boolean;
var
s: string;
begin
Result := False;
case radJzfs.ItemIndex of
1:
begin
FXykbh := CtData.FindBh('XYK','D_XYKBH','D_XYKMC',cmbJz.Text);
if FXykbh<>'' then
Result := True
else
ShowInfo('请选择信用卡!');
end;
3:
begin
s := GetMc(cmbJz.Text);
FKhbh := CtData.FindBh('KHDA','D_KHBH','D_KHMC',s);
if FKhbh<>'' then
Result := True
else
ShowInfo('请选择记帐客户!');
end;
4:
begin
if CtData.CheckKfzt(cmbJz.Text)=KFZT_BF then
begin
FKfbh := cmbJz.Text;
Result := True;
end
else
ShowInfo('请选择挂帐散客!');
end;
5:
begin
tblKrxx.Open;
if tblKrxx.Locate('D_KRXM',cmbJz.Text,[]) then
begin
FKrbh := tblKrxx.FieldByName('D_KRBH').AsString;
Result := True;
end
else
ShowInfo('请选择挂帐团队!');
tblKrxx.Close;
end;
else
Result := True;
end;
end;
procedure TFcfjzForm.UpdateKrzd;
begin
FZdbh := CtData.GetBh('D_ZDBH',PREV_ZDBH);
try
tblKrzd.Open;
tblKrzd.Insert;
tblKrzd.FieldByName('D_ZDBH').AsString := FZdbh;
tblKrzd.FieldByName('D_HH').AsInteger := 0;
tblKrzd.FieldByName('D_ZDLB').AsString := ZDLB_FYK;
tblKrzd.FieldByName('D_XFJE').AsCurrency := FSjje+FYhje;
tblKrzd.FieldByName('D_XFRQ').AsDateTime := Date;
tblKrzd.FieldByName('D_XFSJ').AsDateTime := Time;
tblKrzd.FieldByName('D_YHJE').AsCurrency := FYhje;
tblKrzd.FieldByName('D_JZRQ').AsDateTime := Date;
tblKrzd.FieldByName('D_JZSJ').AsDateTime := Time;
tblKrzd.FieldByName('D_JZBZ').AsString := JZ_YES;
tblKrzd.FieldByName('D_JSBZ').AsString := JS_YES;
tblKrzd.FieldByName('D_CZYXM').AsString := CZY.CzyXm;
tblKrzd.FieldByName('D_JZYXM').AsString := CZY.CzyXm;
tblKrzd.FieldByName('D_BMBH').AsString := FBMbh;
tblKrzd.FieldByName('D_BZ').AsString := ZDBZ_FYK+' 非用餐';
tblKrzd.FieldByName('D_JZBH').AsString := FJzbh;
tblKrzd.Post;
tblKrzd.Insert;
tblKrzd.FieldByName('D_ZDBH').AsString := FZdbh;
tblKrzd.FieldByName('D_HH').AsInteger := 1;
tblKrzd.FieldByName('D_XMBH').AsString := XMBH_CF;
tblKrzd.FieldByName('D_ZDLB').AsString := ZDLB_FYK;
tblKrzd.FieldByName('D_XFJE').AsCurrency := FSjje+FYhje;
tblKrzd.FieldByName('D_XFRQ').AsDateTime := Date;
tblKrzd.FieldByName('D_XFSJ').AsDateTime := Time;
tblKrzd.FieldByName('D_YHJE').AsCurrency := FYhje;
tblKrzd.FieldByName('D_JZRQ').AsDateTime := Date;
tblKrzd.FieldByName('D_JZSJ').AsDateTime := Time;
tblKrzd.FieldByName('D_JZBZ').AsString := JZ_YES;
tblKrzd.FieldByName('D_JSBZ').AsString := JS_YES;
tblKrzd.FieldByName('D_CZYXM').AsString := CZY.CzyXm;
tblKrzd.FieldByName('D_JZYXM').AsString := CZY.CzyXm;
tblKrzd.FieldByName('D_BMBH').AsString := FBMbh;
tblKrzd.FieldByName('D_BZ').AsString := ZDBZ_FYK+' 非用餐';
tblKrzd.FieldByName('D_JZBH').AsString := FJzbh;
tblKrzd.Post;
if FJzfs = JZFS_GBK then
begin
tblKrzd.Insert;
tblKrzd.FieldByName('D_ZDBH').AsString := FZdbh;
tblKrzd.FieldByName('D_HH').AsInteger := 2;
tblKrzd.FieldByName('D_XMBH').AsString := XMBH_YJK;
tblKrzd.FieldByName('D_ZDLB').AsString := ZDLB_FYK;
tblKrzd.FieldByName('D_XFJE').AsCurrency := 0-FGbkJzxx.AKcje;
tblKrzd.FieldByName('D_XFRQ').AsDateTime := Date;
tblKrzd.FieldByName('D_XFSJ').AsDateTime := Time;
tblKrzd.FieldByName('D_YHJE').AsCurrency := 0;
tblKrzd.FieldByName('D_JZRQ').AsDateTime := Date;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -