📄 uy_yyt_jz.pas
字号:
unit uy_yyt_jz;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Mask, StdCtrls, DBCtrls, ExtCtrls, Buttons,u_main, Grids, DBGrids, Db,
DBTables, ImgList, Menus, ComCtrls, ToolWin;
type
Ty_yyt_jz = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
ckxx: TCheckBox;
c_jzfs: TRadioGroup;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
xj: TDBEdit;
Label10: TLabel;
Label6: TLabel;
DBEdit1: TDBEdit;
Label17: TLabel;
Label14: TLabel;
fwfl: TEdit;
dzl: TEdit;
Label11: TLabel;
Label13: TLabel;
fwf: TDBEdit;
zkf: TDBEdit;
Label1: TLabel;
Label2: TLabel;
zj: TDBEdit;
Label12: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
Bevel1: TBevel;
Bevel2: TBevel;
Label3: TLabel;
sr: TEdit;
Label4: TLabel;
zh: TEdit;
p2: TPanel;
ckbh1: TLabel;
Label7: TLabel;
dwmc: TEdit;
SpeedButton1: TSpeedButton;
ckbh: TEdit;
Label5: TLabel;
DBEdit4: TDBEdit;
c_dy: TCheckBox;
BitBtn5: TBitBtn;
dz: TBitBtn;
ckzl: TTable;
ckzlCkbh: TStringField;
ckzlDwmc: TStringField;
ckzlZjm: TStringField;
ckzlXfcs: TIntegerField;
ckzlXfze: TFloatField;
ckzlXydj: TStringField;
ckzlDwxz: TStringField;
ckzlDwdz: TStringField;
ckzlYzbm: TStringField;
ckzlKhyh: TStringField;
ckzlZh: TStringField;
ckzlDbxm: TStringField;
ckzlXb: TStringField;
ckzlDh: TStringField;
ckzlChh: TStringField;
ckzlSj: TStringField;
ckzlEmail: TStringField;
ckzlCsrq: TDateTimeField;
ckzlQldj: TStringField;
ckzlZw: TStringField;
d_ckzl: TDataSource;
q_ck: TQuery;
StringField22: TStringField;
q_ckdwmc: TStringField;
q_ckzjm: TStringField;
q_ckxfcs: TIntegerField;
q_ckxfze: TFloatField;
q_ckxydj: TStringField;
q_ckdbxm: TStringField;
q_ckzw: TStringField;
q_ckqldj: TStringField;
q_ckxb: TStringField;
q_ckdwxz: TStringField;
q_ckdwdz: TStringField;
q_ckdh: TStringField;
dq_ck: TDataSource;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure srChange(Sender: TObject);
procedure fwflChange(Sender: TObject);
procedure dzlChange(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure zkfChange(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure ckxxClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure ckbhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtn5Click(Sender: TObject);
procedure fwfChange(Sender: TObject);
procedure dzClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function h_zsje(s_cdbh:string):currency;
end;
var
y_yyt_jz: Ty_yyt_jz;
c_zh:currency;
s_fwfl,s_dzl,s_xj,ys_sr:string;
implementation
uses uy_yyt, uy_yyt_qd, uyp_yyt1, uy_yyt_md,
uy_yyt_jz_dz, ug_ckcx;
{$R *.DFM}
function Ty_yyt_jz.h_zsje(s_cdbh:string):currency;
begin
with main.Query1 do
begin
active:=false;
sql.Clear;
sql.add('select sum(hj) as hj from cdmx where cdbh=:s_cdbh and cz="2"');
ParamByName('s_cdbh').asstring:=s_cdbh;
active:=true;
h_zsje:=fieldbyname('hj').ascurrency;
end;
end;
procedure Ty_yyt_jz.BitBtn1Click(Sender: TObject);
var
i_xfcs:integer;
c_xfze:currency;
begin
if (y_yyt.y_yyt_zdxf.Checked) and (y_yyt.q_cdje.fieldbyname('hj').ascurrency<y_yyt.t_tai.fieldbyname('zdxf').ascurrency) then
if messagebox(handle,'此单总计金额小于台的最低消费! 继续吗?','系统提示信息',MB_OKCANCEL+MB_ICONQUESTION)=IDCANCEL then exit;
if ((c_jzfs.itemindex=0) and (length(sr.text)=0)) or ((c_jzfs.itemindex=0) and (strtocurr(zh.text)<0)) then
begin
messagebox(handle,'收入金额为空,或收入金额小于总计金额','系统提示信息',MB_OK+MB_ICONWARNING);
sr.setfocus;
exit;
end;
if (c_jzfs.itemindex=3) and (length(ckbh.text)=0) then
begin
messagebox(handle,'请先确定签单常客!','系统提示信息',MB_OK+MB_ICONWARNING);
ckxx.Checked:=true;
p2.Visible:=true;
ckbh.setfocus;
exit;
end;
y_yyt.cd.edit;
y_yyt.cd.fieldbyname('ssje').value:=y_yyt.cd.fieldbyname('zj1').ascurrency;
y_yyt.cd.fieldbyname('zj').value:=y_yyt.cd.fieldbyname('zj1').ascurrency;
if c_jzfs.itemindex=0 then
begin
if strtocurr(sr.text)>y_yyt.cd.fieldbyname('zj1').ascurrency then
y_yyt.cd.fieldbyname('ssje').value:=y_yyt.cd.fieldbyname('zj1').ascurrency
else
begin
y_yyt.cd.fieldbyname('ssje').value:=strtocurr(sr.text);
y_yyt.cd.fieldbyname('skje').value:=strtocurr(sr.text);
end;
end;
if c_jzfs.itemindex=3 then
begin
esc_enter:=0;
y_yyt_qd.showmodal;
if esc_enter=0 then exit;
end;
if c_jzfs.itemindex=4 then
begin
esc_enter:=0;
y_yyt_md.showmodal;
if esc_enter=0 then exit;
end;
y_yyt.cd.fieldbyname('jzfs').value:=inttostr(c_jzfs.itemindex+1);
y_yyt.cd.post;
//更新常客消费次数和消费总额
if (p2.Visible) and (ckzl.FindKey([trim(ckbh.text)])) then
begin
i_xfcs:=ckzl.fieldbyname('xfcs').asinteger;
c_xfze:=ckzl.fieldbyname('xfze').ascurrency;
ckzl.edit;
ckzl.fieldbyname('xfcs').value:=i_xfcs+1;
ckzl.fieldbyname('xfze').value:=c_xfze+y_yyt.cd.fieldbyname('zj').ascurrency;
end;
esc_enter:=1;
if c_dy.Checked then
yp_yyt1.QuickRep1.Print;
close;
end;
procedure Ty_yyt_jz.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure Ty_yyt_jz.FormShow(Sender: TObject);
var
f_fwfl,f_zkfl:currency;
begin
if not ckzl.Active then ckzl.Active:=true;
activeControl:=sr;
sr.text:='';
zh.text:='0.00';
c_jzfs.itemindex:=0;
ckxx.Checked:=false;
p2.Visible:=false;
ckbh.text:='';
dwmc.text:='';
dz.Enabled:=y_yyt.y_yyt_jzdz.Checked; //结帐打折权限 与‘是否使用折扣费’不一样
fwfl.Enabled:=y_yyt.y_yyt_fwfl.Checked;
f_fwfl:=y_yyt.t_tai.fieldbyname('fwfl').ascurrency;
f_zkfl:=y_yyt.t_tai.fieldbyname('dzl').ascurrency;
fwfl.text:=Format('%*.*f', [8, 2,f_fwfl]);
dzl.text:=Format('%*.*f', [8, 2,f_zkfl]);
if ckzl.FindKey([y_yyt.cd.fieldbyname('ckbh').asstring]) then
begin
ckxx.Checked:=true;
p2.Visible:=true;
ckbh.text:=ckzl.fieldbyname('ckbh').asstring;
dwmc.text:=ckzl.fieldbyname('dwmc').asstring;
end
else
begin
ckxx.Checked:=false;
p2.Visible:=false;
end;
if y_yyt.y_yyt_sfbz.Checked then //是否加上台的收费标准
begin
y_yyt.cd.edit;
y_yyt.cd.fieldbyname('sfbz').value:=y_yyt.t_tai.fieldbyname('sfbz').ascurrency;
end
else
begin
y_yyt.cd.edit;
y_yyt.cd.fieldbyname('sfbz').value:=0.00; //此句不可去掉,已防在结帐时改变 收费标准设置
end;
with y_yyt.cd do
begin
edit;
fieldbyname('xj').ascurrency:=y_yyt.q_cdje.fieldbyname('hj').ascurrency;
fieldbyname('zsje').ascurrency:=h_zsje(s_cdbh);
if y_yyt.y_yyt_fwfl.Checked then
fieldbyname('fwf').ascurrency:=fieldbyname('xj').asfloat*f_fwfl
else
fieldbyname('fwf').ascurrency:=0;
if y_yyt.y_yyt_zkfl.Checked then //是否使用折扣费率 与结帐打折不一回事
fieldbyname('zkf').ascurrency:=fieldbyname('xj').asfloat*f_zkfl
else
fieldbyname('zkf').ascurrency:=0;
post;
end;
s_fwfl:=fwfl.text;
s_dzl:=dzl.text;
end;
procedure Ty_yyt_jz.FormKeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) then selectnext(activecontrol,true,true);
if key=#27 then close;
end;
procedure Ty_yyt_jz.srChange(Sender: TObject);
begin
if (trim(sr.text)='') or (trim(sr.text)='-') then
begin
zh.text:='0.00';
exit;
end;
try
strtocurr(sr.text);
except
sr.text:=ys_sr;
exit;
end;
ys_sr:=sr.text;
c_zh:=strtocurr(sr.text)-y_yyt.cd.fieldbyname('zj1').value;
zh.text:=Format('%*.*f', [8, 2,c_zh]);
end;
procedure Ty_yyt_jz.fwflChange(Sender: TObject);
begin
if (trim(fwfl.text)='') or (trim(fwfl.text)='-') then fwfl.text:=s_fwfl;
try
strtocurr(fwfl.text);
except
fwfl.text:=s_fwfl;
exit;
end;
s_fwfl:=fwfl.text;
y_yyt.cd.edit;
if fwfl.Focused then
y_yyt.cd.fieldbyname('fwf').value:=y_yyt.cd.fieldbyname('xj').value*strtocurr(fwfl.Text);
y_yyt.cd.post;
end;
procedure Ty_yyt_jz.dzlChange(Sender: TObject);
begin
y_yyt.cd.edit;
y_yyt.cd.fieldbyname('zkf').value:=y_yyt.cd.fieldbyname('xj').value*strtocurr(dzl.Text);
end;
procedure Ty_yyt_jz.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
68:dzl.setfocus;
70:fwfl.setfocus;
83:sr.setfocus;
112:c_jzfs.ItemIndex:=0;
113:c_jzfs.ItemIndex:=1;
114:c_jzfs.ItemIndex:=2;
115:c_jzfs.ItemIndex:=3;
116:c_jzfs.ItemIndex:=4;
117:c_jzfs.ItemIndex:=5;
end;
end;
procedure Ty_yyt_jz.zkfChange(Sender: TObject);
begin
zh.text:='0.00';
sr.text:='';
end;
procedure Ty_yyt_jz.BitBtn3Click(Sender: TObject);
begin
//置当前台状态为'未满'
y_yyt.t_tai.edit;
y_yyt.t_tai.fieldbyname('zt').value:='4';
y_yyt.t_tai.post;
//置当前菜单状态为'预结'
y_yyt.cd.edit;
y_yyt.cd.fieldbyname('zt').value:='2';
y_yyt.cd.post;
y_yyt.zt.caption:='2';
y_yyt.ztc.caption:='预结';
close;
end;
procedure Ty_yyt_jz.BitBtn4Click(Sender: TObject);
begin
yp_yyt1.QuickRep1.preview;
end;
procedure Ty_yyt_jz.ckxxClick(Sender: TObject);
begin
if ckxx.Checked then
p2.Visible:=true
else
begin
p2.Visible:=false;
y_yyt.cd.edit;
y_yyt.cd.fieldbyname('ckbh').value:='';
end;
end;
procedure Ty_yyt_jz.SpeedButton1Click(Sender: TObject);
begin
esc_enter:=0;
g_ckcx.showmodal;
if esc_enter=1 then
begin
dwmc.text:=q_ck.fieldbyname('dwmc').asstring;
ckbh.text:=q_ck.fieldbyname('ckbh').asstring;
y_yyt.cd.edit;
y_yyt.cd.fieldbyname('ckbh').value:=q_ck.fieldbyname('ckbh').asstring;
end;
esc_enter:=0;
end;
procedure Ty_yyt_jz.ckbhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ((key>=65) and (key<=90)) or ((key<=57) and (key>=48)) or ((key<=105) and (key>=96)) then
begin
c_key:=chr(key);
esc_enter:=0;
g_ckcx.showmodal;
if esc_enter=1 then
begin
dwmc.text:=q_ck.fieldbyname('dwmc').asstring;
ckbh.text:=q_ck.fieldbyname('ckbh').asstring;
y_yyt.cd.edit;
y_yyt.cd.fieldbyname('ckbh').value:=q_ck.fieldbyname('ckbh').asstring;
end;
esc_enter:=0;
end;
end;
procedure Ty_yyt_jz.BitBtn5Click(Sender: TObject);
begin
yp_yyt1.QuickRep1.Print;
end;
procedure Ty_yyt_jz.fwfChange(Sender: TObject);
begin
zh.text:='0.00';
sr.text:='';
end;
procedure Ty_yyt_jz.dzClick(Sender: TObject);
begin
s_xj:=xj.text;
y_yyt_jz_dz.showmodal;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -