?? uy_yyt.pas
字號:
// gd.Enabled:=false;
jz.Enabled:=true;
jc.Enabled:=true;
zc.Enabled:=true;
tc.Enabled:=true;
bz.Enabled:=true;
my_yyt_gd.Enabled:=false;
my_yyt_jz.Enabled:=true;
my_yyt_jc.Enabled:=true;
my_yyt_zc.Enabled:=true;
my_yyt_tc.Enabled:=true;
my_yyt_bz.Enabled:=true;
end;
if zt.caption='2' then
begin
ztc.caption:='預結';
DBGrid1.ReadOnly:=false;
// gd.Enabled:=false;
jz.Enabled:=true;
jc.Enabled:=true;
zc.Enabled:=true;
tc.Enabled:=true;
bz.Enabled:=true;
my_yyt_gd.Enabled:=false;
my_yyt_jz.Enabled:=true;
my_yyt_jc.Enabled:=true;
my_yyt_zc.Enabled:=true;
my_yyt_tc.Enabled:=true;
my_yyt_bz.Enabled:=true;
end;
if zt.caption='3' then
begin
ztc.caption:='結帳';
DBGrid1.ReadOnly:=true;
// gd.Enabled:=false;
jz.Enabled:=false;
jc.Enabled:=false;
zc.Enabled:=false;
tc.Enabled:=false;
bz.Enabled:=false;
my_yyt_gd.Enabled:=false;
my_yyt_jz.Enabled:=false;
my_yyt_jc.Enabled:=false;
my_yyt_zc.Enabled:=false;
my_yyt_tc.Enabled:=false;
my_yyt_bz.Enabled:=false;
end;
yh.Enabled:=false;
bz.Enabled:=false;
my_yyt_yh.Enabled:=false;
my_yyt_bz.Enabled:=false;
tai.ReadOnly:=true;
krs.enabled:=false;
fwyh.ReadOnly:=true;
cdmx.filter:='cdbh='+s_cdbh;
cd.Close;
cd.SQL.Clear;
cd.sql.add('select * from cd where cdbh='+quotedstr(s_cdbh));
cd.Open;
//計算菜單金額
h_xjje(q_cdje,'s_cdbh',s_cdbh,0);
end;
procedure Ty_yyt.q_cdcz;
begin
esc_enter:=0;
y_cd_cx:=ty_cd_cx.create(self);
y_cd_cx.ShowModal;
if esc_enter=0 then exit;
with y_cd_cx.q_cdcx do
begin
s_cdbh:=fieldbyname('cdbh').asstring;
th.caption:='['+fieldbyname('th').asstring+']';
tm.caption:=fieldbyname('tm').asstring;
tai.text:=fieldbyname('tht').asstring;
// krs.text:=fieldbyname('krs').asstring;
zws.caption:=fieldbyname('zws').asstring;
fwyh.text:=fieldbyname('fwyh').asstring;
zt.caption:=fieldbyname('zt').asstring;
end;
cdcz_sz;
end;
procedure Ty_yyt.cdcsh;
begin
s_cdbh:=hn_cdbh;
// c_cdbh.caption:=s_cdbh;
//主表初始化
th.caption:='';
tm.caption:='';
zws.caption:='';
tai.text:='';
// krs.text:='';
fwyh.text:='';
zt.caption:='0';
ztc.caption:='新單';
srlb.Caption:='1'; //收入類別默認值設為‘普通’
skyh.caption:=s_czyh;
yddh.caption:='';
DBGrid1.ReadOnly:=false;
krs.enabled:=true;
tai.ReadOnly:=false;
fwyh.ReadOnly:=false;
cd.Close;
cd.SQL.Clear;
cd.sql.add('select * from cd where id=0');
cd.Open;
cd.append;
cd.fieldbyname('fdbh').asstring:=s_fdbh;
cd.fieldbyname('skth').asstring:=s_skth;
cd.fieldbyname('cdbh').asstring:=s_cdbh;
cd.fieldbyname('ycrq').asdatetime:=date();
cd.fieldbyname('ycsj').asdatetime:=time();
cd.fieldbyname('krs').asstring:='1';
//明細表初始化
cdmx.filter:='cdbh='+s_cdbh;
// gd.Enabled:=false;
jz.Enabled:=false;
jc.Enabled:=false;
zc.Enabled:=false;
zc.Enabled:=false;
tc.Enabled:=false;
yh.Enabled:=true;
bz.Enabled:=true;
my_yyt_gd.Enabled:=false;
my_yyt_jz.Enabled:=false;
my_yyt_jc.Enabled:=false;
my_yyt_zc.Enabled:=false;
my_yyt_tc.Enabled:=false;
my_yyt_yh.Enabled:=true;
my_yyt_bz.Enabled:=false;
//計算小計金額,置為0值
h_xjje(q_cdje,'s_cdbh',s_cdbh,0);
if yhyd.RecordCount<>0 then
begin
yh.enabled:=true;
my_yyt_yh.enabled:=true;
end
else
begin
yh.enabled:=false;
my_yyt_yh.enabled:=false;
end;
tai.setfocus;
end;
procedure Ty_yyt.dccz;
begin
with cdmx do
begin
esc_enter:=0;
g_dc:=tg_dc.Create(self);
g_dc.showmodal;
if esc_enter=0 then exit;
edit;
//fieldbyname('bh').value:=hn_cdmxbh;
fieldbyname('cdbh').value:=s_cdbh;
fieldbyname('clh').value:=g_dc.q_dc.fieldbyname('clh').asstring;
fieldbyname('ch').value:=g_dc.q_dc.fieldbyname('ch').asstring;
fieldbyname('cm').value:=g_dc.q_dc.fieldbyname('mc').asstring;
fieldbyname('dj').value:=g_dc.q_dc.fieldbyname('dj').asfloat;
fieldbyname('sl').value:=1;
fieldbyname('dzl').value:=g_dc.q_dc.fieldbyname('dzl').asfloat;
fieldbyname('gg').value:=g_dc.q_dc.fieldbyname('gg').asstring;
fieldbyname('lbh').value:=g_dc.q_dc.fieldbyname('lbh').asstring;
post;
end;
// gd.Enabled:=true;
jz.Enabled:=true;
jc.Enabled:=true;
zc.Enabled:=true;
tc.Enabled:=true;
bz.Enabled:=true;
my_yyt_gd.Enabled:=true;
my_yyt_jz.Enabled:=true;
my_yyt_jc.Enabled:=true;
my_yyt_zc.Enabled:=true;
my_yyt_tc.Enabled:=true;
my_yyt_bz.Enabled:=true;
end;
procedure Ty_yyt.FormShow(Sender: TObject);
begin
if not cdmx_cz.Active then cdmx_cz.Active:=true;
if not t_cdbh.Active then t_cdbh.Active:=true;
if not t_tai.Active then t_tai.Active:=true;
if not t.Active then t.Active:=true;
if not cd.Active then cd.Active:=true;
if not cdmx.Active then cdmx.Active:=true;
if not bzc.Active then bzccd.Active:=true;
if not bzccd.Active then bzccd.Active:=true;
if not yhyd.Active then yhyd.Active:=true;
if not yhydcd.Active then yhydcd.Active:=true;
{if g_ckcx=NIL then g_ckcx:=Tg_ckcx.Create(self);
if y_cd_cx=NIL then y_cd_cx:=Ty_cd_cx.Create(self);
if g_dc=NIL then g_dc:=Tg_dc.Create(self);
if y_yyt_jc=NIL then y_yyt_jc:=Ty_yyt_jc.Create(self);
if y_yyt_jz=NIL then y_yyt_jz:=Ty_yyt_jz.Create(self);
if y_yyt_jz_dz=NIL then y_yyt_jz_dz:=Ty_yyt_jz_dz.Create(self);
if y_yyt_md=NIL then y_yyt_md:=Ty_yyt_md.Create(self);
if y_yyt_qd=NIL then y_yyt_qd:=Ty_yyt_qd.Create(self);
if y_yyt_rt=NIL then y_yyt_rt:=Ty_yyt_rt.Create(self);
if y_yyt_tc=NIL then y_yyt_tc:=Ty_yyt_tc.Create(self);
if y_yyt_zc=NIL then y_yyt_zc:=Ty_yyt_zc.Create(self);
if yp_yyt1=NIL then yp_yyt1:=Typ_yyt1.Create(self); }
y_yyt_cldz.Checked:=main.fdxx.fieldbyname('yycldz').asboolean;
y_yyt_sfbz.Checked:=main.fdxx.fieldbyname('sfbz').asboolean;
y_yyt_zdxf.Checked:=main.fdxx.fieldbyname('zdxf').asboolean;
y_yyt_jzdz.Checked:=main.fdxx.fieldbyname('jzdz').asboolean;
y_yyt_fwfl.Checked:=main.fdxx.fieldbyname('fwfl').asboolean;
y_yyt_zkfl.Checked:=main.fdxx.fieldbyname('zkfl').asboolean;
// sb.panels[2].text:=s_czym;
main.h_del('delete from cd where cdbh is NULL');
// t_a_set; 不能重新設置臺狀態,因為有可能重新啟動
yd_set;
// yhyd.filter:='y_n=false and yhrq='+formatdatetime('yyyy.mm.dd',date())+' and yhsj>='+s_yd_sj1+' and yhsj<='+s_yd_sj2;
// Timer2.Enabled:=true;
cdcsh;
g_wait.close;
end;
procedure Ty_yyt.t_a_set;
begin
with main.query1 do
begin
sql.Clear;
sql.add('update tai set zt="2" where zt<>"3"');
ExecSQL;
end;
end;
procedure Ty_yyt.t_set(string1:string);
begin
with main.query1 do
begin
sql.Clear;
sql.add('update tai set zt='+''''+'5'+''''+' where tht=:s_tht');
ParamByName('s_tht').asstring:=string1;
ExecSQL;
end;
end;
procedure Ty_yyt.t_u_set(string1:string);
begin
with main.query1 do
begin
sql.Clear;
sql.add('update tai set zt='+''''+'2'+''''+' where tht=:s_tht');
ParamByName('s_tht').asstring:=string1;
ExecSQL;
end;
end;
procedure Ty_yyt.yd_set;
var
i,ii:integer;
begin
//根據預定信息,初始化臺的當前狀態
with main.query1 do
begin
sql.clear;
sql.add('select * from yhyd where yhrq=:s_rq and yhsj>=:s_sj1 and yhsj <=:s_sj2 and y_n=false');
ParamByName('s_rq').asstring:=formatdatetime('yyyy.mm.dd',date());
ParamByName('s_sj1').asstring:=s_yd_sj1;
ParamByName('s_sj2').asstring:=s_yd_sj2;
active:=false;
active:=true;
if recordcount<>0 then
begin
first;
for i:=0 to recordcount-1 do
begin //找出預定臺
if length(trim(fieldbyname('thts').asstring))>2 then s_ths:=s_ths+trim(fieldbyname('thts').asstring)
else s_ths:=s_ths+trim(fieldbyname('tht').asstring);
next;
end;
end;
end;
ii:=length(s_ths);
if ii<>0 then
for i:=1 to ii do
begin
if i>ii/2 then break;
t_set(copy(s_ths,1,2)); //設為預定臺
s_ths:=copy(s_ths,3,length(s_ths));
end;
end;
procedure Ty_yyt.taiKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then krs.setfocus;
{ if trim(zt.caption)<>'0' then exit; //如已掛單返回,否則可以重新選廳
if key=#13 then
begin
esc_enter:=0;
y_yyt_rt:=ty_yyt_rt.Create(self);
y_yyt_rt.showmodal;
if esc_enter=0 then exit;
krs.setfocus;
with y_yyt_rt.q_xt do
begin
th.caption:='['+fieldbyname('th').asstring+']';
tm.caption:=fieldbyname('tm').asstring;
tai.text:=fieldbyname('tht').asstring;
zws.caption:=fieldbyname('zws').asstring;
fwyh.text:=fieldbyname('fwyh').asstring;
end;
krs.setfocus;
end; }
end;
procedure Ty_yyt.y_closeClick(Sender: TObject);
begin
if (trim(zt.Caption)='0') and (cdmx.RecordCount<>0) then //如果是新菜單
begin
if not t_tai.Locate('tht',y_yyt.tai.text,[loCaseInsensitive]) then
begin
messagebox(handle,'選臺操作有誤!'+#13+'請一定要先刪除當前點菜單的所有菜肴,然后重新啟動〈陽光管理軟件系統-餐飲〉','系統提示信息',MB_OK+MB_ICONWARNING);
main.h_del_p1('c_cdbh','s_cdbh','delete from cdmx where cdbh=:c_cdbh');
exit;
end;
gdcz;
end;
close;
end;
procedure Ty_yyt.t_cdClick(Sender: TObject);
begin
if (trim(zt.Caption)='0') and (cdmx.RecordCount<>0) then //如果是新菜單
begin
gdcz;
end;
//krs.setfocus;
q_cdcz;
end;
procedure Ty_yyt.jzClick(Sender: TObject);
begin
if (trim(zt.Caption)='0') and (cdmx.RecordCount<>0) then gdcz;
try
cdmx.edit;
cdmx.post; //如能保存就保存,不能保存,就cancel掉
except
cdmx.cancel;
end;
h_xjje(q_cdje,'s_cdbh',s_cdbh,0); //計算小計金額
if q_cdje.fieldbyname('hj_all').ascurrency=0 then
begin
messagebox(handle,'小計金額為0,不能結帳!','系統提示信息',MB_OK+MB_ICONWARNING);
exit;
end;
if not cd.Locate('cdbh',s_cdbh,[loCaseInsensitive]) then
begin
messagebox(handle,'菜單查詢操作有誤!','系統提示信息',MB_OK+MB_ICONWARNING);
exit;
end;
if not t_tai.Locate('tht',y_yyt.tai.text,[loCaseInsensitive]) then
begin
messagebox(handle,'臺查詢操作有誤!','系統提示信息',MB_OK+MB_ICONWARNING);
exit;
end;
esc_enter:=0;
y_yyt_jz:=ty_yyt_jz.Create(self);
y_yyt_jz.showmodal;
if esc_enter=0 then exit;
//置當前臺狀態為'空閑'
t_tai.edit;
t_tai.fieldbyname('zt').value:='2';
t_tai.post;
//置當前菜單狀態為'結帳'
with cd do
begin
edit;
fieldbyname('zt').value:='3';
fieldbyname('jzrq').value:=date;
fieldbyname('jzsj').value:=time();
post;
end;
zt.caption:='3';
ztc.caption:='結帳';
DBGrid1.ReadOnly:=true;
// gd.Enabled:=false;
jz.Enabled:=false;
jc.Enabled:=false;
zc.Enabled:=false;
tc.Enabled:=false;
bz.Enabled:=false;
my_yyt_gd.Enabled:=false;
my_yyt_jz.Enabled:=false;
my_yyt_jc.Enabled:=false;
my_yyt_zc.Enabled:=false;
my_yyt_tc.Enabled:=false;
my_yyt_bz.Enabled:=false;
end;
procedure Ty_yyt.fwyhKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then DBGrid1.setfocus;
end;
procedure Ty_yyt.krsKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then fwyh.setfocus;
end;
procedure Ty_yyt.tcClick(Sender: TObject);
var
clh,ch,cm,gg,lbh:string;
dj,sl:currency;
begin
if zt.caption='0' then
begin
messagebox(handle,'此菜單還沒掛單!,您可直接按[Alt+Del]刪掉該菜!','系統提示信息',MB_OK+MB_ICONWARNING);
exit;
end;
if zt.caption='3' then
begin
messagebox(handle,'此菜單已結帳!,不能再退菜!','系統提示信息',MB_OK+MB_ICONWARNING);
exit;
end;
with cdmx do
begin
if fieldbyname('sl').value=fieldbyname('tsl').value then
exit;
if (trim(fieldbyname('cz').asstring)='1') or (trim(fieldbyname('cz').asstring)='2') then
exit;
if trim(fieldbyname('cm').asstring)='' then
exit;
f_tcsl:=fieldbyname('sl').ascurrency-fieldbyname('tsl').ascurrency;
esc_enter:=0;
y_yyt_tc:=ty_yyt_tc.Create(self);
y_yyt_tc.showmodal;
if esc_enter=0 then exit;
edit;
clh:=fieldbyname('clh').asstring;
ch:=fieldbyname('ch').asstring;
cm:=fieldbyname('cm').asstring;
gg:=fieldbyname('gg').asstring;
dj:=fieldbyname('dj').ascurrency;
sl:=fieldbyname('tsl').ascurrency;
lbh:=fieldbyname('lbh').asstring;
fieldbyname('tsl').value:=sl+f_tcsl;
append;
// fieldbyname('bh').value:=hn_cdmxbh;
fieldbyname('cdbh').value:=s_cdbh;
fieldbyname('clh').value:=clh;
fieldbyname('ch').value:=ch;
fieldbyname('cm').value:=cm;
fieldbyname('gg').value:=gg;
fieldbyname('dj').value:=dj;
fieldbyname('sl').value:=-f_tcsl;
fieldbyname('cz').value:='1';
fieldbyname('tcyyh').value:=s_tcyyh;
fieldbyname('tcyy').value:=s_tcyy;
fieldbyname('pzrh').value:=s_pzrh;
fieldbyname('lbh').value:=lbh;
end;
end;
procedure Ty_yyt.dcClick(Sender: TObject);
begin
//判斷當前的菜單是否是新菜單
if (trim(zt.Caption)='0') and (cdmx.RecordCount<>0) then gdcz;
main.h_del('delete from cd where cdbh is NULL');
main.h_del('delete from cdmx where cm is NULL');
cdcsh;
end;
procedure Ty_yyt.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=6 then exit; //屏蔽del鍵
if key=9 then tai.setfocus;
//刪菜操作
if (key=46) and (zt.caption='0') and (cdmx.fieldbyname('sl').value<>cdmx.fieldbyname('tsl').value) then
if messagebox(handle,'您真的要刪除該菜嗎','系統提示信息',MB_OKCANCEL+MB_ICONQUESTION)=IDOK then
begin
cdmx.Delete;
// h_xjje(q_cdje,'s_cdbh',s_cdbh,0); //計算菜單金額
end;
if (key=13) and (zt.Caption<>'3') then
begin
cdmx.append; //回車鍵新增
DBGrid1.SelectedIndex:=0;
end;
if (trim(cdmx.fieldbyname('cm').asstring)='') and (zt.caption<>'3') then
begin
if ( (key>=65) and (key<=90) ) or ( (key>=48) and (key<=57) ) then
begin
c_key:=chr(key);
dccz; //點菜操作
DBGrid1.SelectedIndex:=3;
end;
if (key>=96) and (key<=105) then //判斷小鍵盤數字鍵, 并轉換
begin
c_key:=chr(key-48);
dccz; //點菜操作
DBGrid1.SelectedIndex:=3;
end;
end;
h_xjje(q_cdje,'s_cdbh',s_cdbh,0); //計算菜單金額
end;
procedure Ty_yyt.krsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=39) or (key=40) then fwyh.setfocus;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -