📄 jzjz.pas
字号:
q2.ParamByName ('paccno').asstring:=acc;
q2.Prepare;
q2.Open;
chinesegrid(dbgrid1);
q2.active:=true;
end; }
end;
end;
procedure Tjzjzform.manClick(Sender: TObject);
begin
if man.Checked =true then
begin
listbegtime;
findacc;
end;
end;
procedure Tjzjzform.womanClick(Sender: TObject);
begin
if woman.Checked =true then
begin
listbegtime;
findacc;
end;
end;
procedure Tjzjzform.begtmClick(Sender: TObject);
begin
findacc;
end;
procedure Tjzjzform.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
selectnext(activecontrol,true,true);
if key=27 then
jzjzform.close;
end;
procedure Tjzjzform.FormCreate(Sender: TObject);
begin
shortdateformat:='yyyy-mm-dd';
czy.Text :=curper.name;
comadd(gzno,2,'select gzno,gzname from gzdbf');
q1.Active :=false;
q1.sql.Clear ;
q1.sql.add('select * from mode');
q1.Prepare;
q1.open;
jzfsname.Items.Clear;
jzfs.Items.Clear;
while not q1.Eof do
begin
jzfs.Items.Add(q1.FieldByName('Code').asstring);
jzfsname.Items.Add(q1.FieldByName('name').asstring);
q1.Next;
end;
q1.Close;
q1.UnPrepare;
formini;
end;
procedure Tjzjzform.Button1Click(Sender: TObject);
begin
groupbox2.Enabled :=true;
if length(trim(xfhdno.text))=0 then
begin
xfhdno.SetFocus;
exit;
end;
if length(trim(acc))=0 then
findacc;
jjzz;
seemx;
jj.Enabled :=true;
mcs.Enabled :=true;
mm.Enabled :=true;
zk.Enabled :=true;
button2.Enabled :=true;
button3.Enabled :=true;
if (trim(dhf.Text)='0') or (trim(dhf.Text)='') then
dhmx.Enabled:=false
else
dhmx.Enabled:=true;
if (trim(xm.Text)='0') or (trim(xm.Text)='') then
xfmx.Enabled:=false
else
xfmx.Enabled:=true;
mcs.SetFocus ;
end;
procedure Tjzjzform.rmmxClick(Sender: TObject);
begin
seemx;
end;
procedure Tjzjzform.xfmxClick(Sender: TObject);
begin
seemx;
end;
procedure Tjzjzform.mxfClick(Sender: TObject);
begin
mxffjval;
end;
procedure Tjzjzform.mfjClick(Sender: TObject);
begin
mxffjval;
end;
procedure Tjzjzform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
q1.free;
q2.free;
s1.free;
end;
procedure Tjzjzform.Button4Click(Sender: TObject);
begin
jzjzform.close;
end;
procedure Tjzjzform.Button3Click(Sender: TObject);
var
rmnum,sannum,totnum:integer;
begin
if messagedlg('打印成功吗?',mtInformation,[mbYes, mbNo], 0) = mrno then
exit;
if length(trim(acc))>0 then
begin
rmmx.Checked :=true;
totnum:=q2.RecordCount ;
q1.Active :=false;
q1.sql.clear;
q1.sql.add('select count(roomno) as gs from gznowin where (isbj=:pbj and accno=:pacc)');
q1.ParamByName ('pbj').asboolean:=true;
q1.ParamByName ('pacc').asstring:=trim(acc);
q1.Prepare;
q1.open;
rmnum:=q1.fieldbyname('gs').asinteger;
sannum:=totnum-rmnum;
q1.Active :=false;
q1.sql.clear;
// q1.sql.add('insert into bcjz values(:phandno,:paccno,:proomnum,:psannum,:proommoney,:proomcsmoney,:prmzklevel,:psanmoney,:psancsmoney,:pcusmoney,:pyjmoney,:pmcsmoney,:pjjmoeny,:pmmmoney,:pysmoney,:pismf,:pisxj,:piscard,:piszp,:pisgz,:pgzno,:pjztime,:pclass,:pregid)');
q1.sql.add('insert into lsjz values(:phandno,:paccno,:proomnum,:psannum,:proommoney,:proomcsmoney,:prmzklevel,:psanmoney,:psancsmoney,:pcusmoney,:pphmoney,:pyjmoney,:pmcsmoney,:pjjmoeny,:pmmmoney,:pysmoney,:pismf,:pismxf,:pgzno,:pjztime,:pclass,:pregid,:pjzfs)');
q1.ParamByName ('phandno').asstring:=trim(xfhdno.text);
q1.ParamByName ('paccno').asstring:=trim(acc);
q1.ParamByName ('proomnum').asinteger:=rmnum;
q1.ParamByName ('psannum').asinteger:=sannum;
q1.ParamByName ('proommoney').asfloat:=strtofloat(trim(rm.text));
q1.ParamByName ('proomcsmoney').asfloat:=strtofloat(trim(rcsm.text));
q1.ParamByName ('prmzklevel').asinteger:=zk.value;
q1.ParamByName ('psanmoney').asfloat:=strtofloat(trim(sm.text));
q1.ParamByName ('psancsmoney').asfloat:=strtofloat(trim(scsm.text));
q1.ParamByName ('pcusmoney').asfloat:=strtofloat(trim(xm.text));
q1.ParamByName ('pphmoney').asfloat:=strtofloat(trim(xm.text));
q1.ParamByName ('pyjmoney').asfloat:=strtofloat(trim(yjm.text));
q1.ParamByName ('pmcsmoney').asfloat:=strtofloat(trim(mcs.text));
q1.ParamByName ('pjjmoeny').asfloat:=strtofloat(trim(jj.text));
q1.ParamByName ('pmmmoney').asfloat:=strtofloat(trim(mm.text));
q1.ParamByName ('pysmoney').asfloat:=strtofloat(trim(ym.text));
q1.ParamByName ('pismf').asboolean:=mfj.Checked;
q1.ParamByName ('pismxf').asboolean:=mfj.Checked ;
if gzno.Enabled then
q1.ParamByName ('pgzno').asstring:=copy(gzno.Items[gzno.itemindex],1,6)
else
q1.ParamByName ('pgzno').asstring:='';
q1.ParamByName ('pjztime').asstring:=trim(begtm.text);
//strtodatetime(maskedit1.text);
q1.ParamByName ('pclass').asstring:=curper.curbc;
q1.ParamByName ('pregid').asstring:=trim(copy(czy.text,1,10));
if jzfsname.Enabled then
q1.ParamByName ('pjzfs').asstring:=jzfs.text
else
q1.ParamByName ('pjzfs').asstring:='05';
q1.Prepare;
q1.execsql;
q1.active:=false;
if mxf.Checked =true then
begin
q1.sql.clear;
q1.sql.add('update custom set ismd=1 where ((isxj=:pxj) and (ismd=:pmd) and (accno=:pno))');
q1.ParamByName ('pxj').asboolean:=false;
q1.ParamByName ('pmd').asboolean:=false;
q1.ParamByName ('pno').asstring:=trim(acc);
q1.Prepare;
q1.ExecSQL ;
q1.Active :=false;
end;
q1.active:=false;
s1.ParamByName ('@iaccount').asstring:=trim(acc);
s1.ParamByName ('@jzfs').asstring:=jzfs.text ;
// s1.ParamByName ('@isxj').asboolean:=xj.Checked ;
// s1.ParamByName ('@iscard').asboolean:=card.Checked ;
// s1.parambyname ('@iszp').asboolean:=zp.checked;
// s1.ParamByName ('@isgz').asboolean:=gz.Checked ;
if gzno.Enabled =true then
s1.ParamByName ('@igzno').asstring:=copy(gzno.Items[gzno.itemindex],1,6)
else
s1.ParamByName ('@igzno').asstring:='';
s1.Prepare;
s1.ExecProc;
showmessage('结帐成功');
button2.Enabled :=false;
button3.Enabled :=false;
q2.active:=false;
formini;
xfhdno.setfocus;
end;
end;
procedure jzprn;
var
myfile:textfile;
rmh,mansanh,womansanh,mindate,s,ss,dwmc:string;
rmnum,sannum:integer;
aa:array [0..3] of string;
begin
with jzjzform do
begin
rmh:='';
mansanh:='';
womansanh:='';
rmnum:=0;
sannum:=0;
s:=' ';
ss:='----------------------------------------------------------';
q1.close;
q1.sql.clear;
q1.sql.add('Select UnitName from syssetup');
q1.open;
dwmc:=trim(unpassname(q1.Fields[0].asstring));
q1.close;
q1.UnPrepare;
q1.Active :=false;
q1.sql.clear;
q1.sql.add('select min(begtime) as rq from gznowin where accno=:ph');
q1.ParamByName ('ph').asstring:=acc;
q1.Prepare;
q1.open;
mindate:=q1.fieldbyname('rq').asstring;
q1.Active :=false;
q1.sql.clear;
q1.sql.add('select * from gznowin where accno=:paccno');
q1.ParamByName ('paccno').asstring:=acc;
q1.Prepare;
q1.open;
q1.Active :=true;
while not q1.EOF do
begin
if q1.FieldByName ('isbj').asboolean then
begin
rmh:=rmh+' '+q1.fieldbyname('handno').asstring;
rmnum:=rmnum+q1.fieldbyname('num').asinteger;
end
else
begin
if q1.FieldByName ('sex').asstring='1' then
mansanh:=mansanh+' '+q1.fieldbyname('handno').asstring;
if q1.FieldByName ('sex').asstring='0' then
womansanh:=mansanh+' '+q1.fieldbyname('handno').asstring;
sannum:=sannum+q1.fieldbyname('num').asinteger;
end;
q1.next;
end;
q1.Active :=false;
q1.sql.clear;
q1.sql.add('select cuscode,cusprice,sum(money)as money ,sum(cusnum) as cussl from gzcustom where (accno=:pacc and isxj=:pisxj and ismd=:pismd) group by cuscode,cusprice');
q1.ParamByName ('pacc').asstring:=acc;
q1.ParamByName ('pisxj').asboolean:=false;
q1.ParamByName ('pismd').asboolean:=false;
q1.Prepare;
q1.open;
//****** print ****************//
assignprn(myfile);
rewrite(myfile);
printer.Canvas.Font.name:=jzjzform.Font.name;
printer.Canvas.Font.size:=16;
writeln(myfile,' '+dwmc+'消费结算单');
writeln(myfile,' ='+copy('=============',1,length(dwmc))+'===========');
printer.Canvas.Font.size:=9;
writeln(myfile,' ');
writeln(myfile,'房间号 '+rmh);
writeln(myfile,'男散号 '+mansanh);
writeln(myfile,'女散号 '+womansanh);
if rmnum>0 then
writeln(myfile,'人数 '+copy(inttostr(rmnum)+s,1,10)+' 超员 '+copy(inttostr(sannum)+s,1,10)+' 押金 '+copy(yjm.Text+s,1,10))
else
writeln(myfile,'人数 '+copy(inttostr(sannum)+s,1,10)+' 超员 '+copy(s,1,10)+' 押金 '+copy(yjm.Text+s,1,10));
writeln(myfile,'入住时间 '+mindate+' 结帐时间 '+datetimetostr(now));
writeln(myfile,ss);
writeln(myfile,copy('服务项目'+S,1,20)+copy('单价'+s,1,10)+copy('数量'+s,1,10)+copy('金额'+s,1,10));
writeln(myfile,ss);
writeln(myfile,copy('房间费'+s,1,40)+copy(floattostr(strtofloat(rm.Text)*zk.value/100)+s,1,10));
writeln(myfile,copy('散座费'+s,1,40)+copy(sm.text+s,1,10));
writeln(myfile,'');
q1.Active :=true;
while not q1.eof do
begin
aa[0]:='';
getvalue(aa,'select cusname from cusitem where cuscode='''+q1.fieldbyname('cuscode').asstring+'''');
aa[1]:=q1.fieldbyname('cusprice').asstring;
aa[2]:=q1.fieldbyname('cussl').asstring;
aa[3]:=q1.fieldbyname('money').asstring;
writeln(myfile,copy(aa[0]+s,1,20)+copy(aa[1]+s,1,10)+copy(aa[2]+s,1,10)+copy(aa[3]+s,1,10));
q1.next;
end;
q1.Active :=false;
writeln(myfile,'');
writeln(myfile,copy('合计'+s,1,40)+copy(hm.text+s,1,10));
writeln(myfile,copy('应付'+s,1,40)+copy(ym.text+s,1,10));
writeln(myfile,' ');
writeln(myfile,copy(s,1,30)+'宾客签名:');
writeln(myfile,' ');
writeln(myfile,ss);
writeln(myfile,'结算方式: '+jzfsname.text+copy(s,1,30)+'收银员 '+curper.name);
system.CloseFile (myfile);
end;
end;
procedure Tjzjzform.Button2Click(Sender: TObject);
begin
jzprn;
end;
procedure Tjzjzform.xfhdnoEnter(Sender: TObject);
begin
groupbox2.Enabled :=false;
end;
procedure Tjzjzform.jzfsnameChange(Sender: TObject);
begin
jzfs.ItemIndex:=jzfsname.ItemIndex;
if (trim(jzfsname.text)='记帐') or (trim(jzfsname.text)='挂帐') then
gzno.Enabled:=true
else
gzno.Enabled:=false;
if trim(jzfsname.text)='免费' then
begin
mxf.Checked:=true;
mfj.Checked:=true;
mxffjval;
end
else
begin
mxf.Checked:=false;
mfj.Checked:=false;
mxffjval;
end;
end;
procedure Tjzjzform.jzfsnameKeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
end;
procedure Tjzjzform.xfhdnoChange(Sender: TObject);
var recnum:integer;
lssex:string;
begin
if length(trim(xfhdno.text))>0 then
begin
q1.Active :=false;
q1.sql.clear;
q1.sql.add('select distinct sex from gznowin where handno=:phdno');
q1.ParamByName ('phdno').asstring:=trim(xfhdno.text);
q1.Prepare;
q1.open;
q1.Active :=true;
recnum:=q1.RecordCount ;
if recnum =0 then
begin
q1.Active :=false;
showmessage('手号错误');
xfhdno.SetFocus;
exit;
end;
if recnum =1 then
begin
lssex:=trim(q1.fieldbyname('sex').asstring);
man.Enabled :=false;
woman.Enabled :=false;
if lssex='2' then
begin
man.Checked :=false;
woman.Checked :=false;
end;
if lssex='1' then
man.checked:=true;
if lssex='0' then
woman.Checked :=true;
listbegtime;
findacc;
end;
if recnum >1 then
begin
man.Enabled :=true;
woman.Enabled :=true;
man.Checked :=true;
man.SetFocus ;
end;
end
else
if ActiveControl<>Button4 then
xfhdno.SetFocus ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -