gzqktj.pas
来自「日昌餐饮管理系统是用Delphi7+SQL写的管理系统」· PAS 代码 · 共 329 行
PAS
329 行
unit gzqktj;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Grids, DBGrids, DB, ExtCtrls, Buttons,
DBTables, QRCtrls, QuickRpt,printers;
type
TtjForm = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
BitBtn1: TBitBtn;
Query1: TQuery;
Query2: TQuery;
UpdateSQL1: TUpdateSQL;
DataSource2: TDataSource;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit;
LabeledEdit6: TLabeledEdit;
LabeledEdit7: TLabeledEdit;
LabeledEdit8: TLabeledEdit;
LabeledEdit9: TLabeledEdit;
Query3: TQuery;
SpeedButtonf: TSpeedButton;
Panel3: TPanel;
QuickRep1: TQuickRep;
PageHeaderBand2: TQRBand;
QRSysData3: TQRSysData;
QRLabel10: TQRLabel;
QRLabel11: TQRLabel;
SummaryBand2: TQRBand;
QRLabel17: TQRLabel;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRLabel12: TQRLabel;
QRLabel13: TQRLabel;
QRLabel14: TQRLabel;
QRLabel15: TQRLabel;
QRLabel16: TQRLabel;
QRLabel19: TQRLabel;
QRLabel20: TQRLabel;
QRLabel21: TQRLabel;
QRLabel22: TQRLabel;
QRLabel23: TQRLabel;
QRLabel24: TQRLabel;
QRLabel25: TQRLabel;
QRLabel26: TQRLabel;
QRLabel27: TQRLabel;
QRLabel28: TQRLabel;
QRLabel29: TQRLabel;
QRLabel30: TQRLabel;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
QRLabel31: TQRLabel;
QRLabel32: TQRLabel;
QRLabel33: TQRLabel;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRLabel34: TQRLabel;
BitBtn2: TBitBtn;
LabeledEdit10: TLabeledEdit;
Query4: TQuery;
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormActivate(Sender: TObject);
procedure SpeedButtonfClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
xx:string;
function writl(port:string;disp_info:string):integer;
{ Private declarations }
public
{ Public declarations }
end;
var
tjForm: TtjForm;
implementation
uses pass,qtmain,rjsmain;
{$R *.dfm}
procedure TtjForm.BitBtn1Click(Sender: TObject);
begin
query1.Close;
query2.Close;
query1.SQL.Clear;
if pass.yhlx='U' then query1.SQL.Add('SELECT count(distinct djh) as djsl, lb, mc, bh, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcd dcd where rq>=:cs1 and rq<=:cs2 and fkbz=1 and zfbz=0 and yhh=:cs3 group by lb,bh,mc order by lb,bh ')
else query1.SQL.Add('SELECT count(distinct djh) as djsl, lb, mc, bh, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcdlx dcdlx where rq>=:cs1 and rq<=:cs2 and fkbz=1 and zfbz=0 and yhh=:cs3 group by lb,bh,mc order by lb,bh ');
query1.ParamByName('cs1').AsDateTime:=date+strtotime('00:00:00');
query1.ParamByName('cs2').AsDateTime:=date+time;
query1.ParamByName('cs3').AsString:=pass.yhbh;
query1.Open;
query2.SQL.Clear;
if pass.yhlx='U' then query2.SQL.Add(' SELECT count(distinct djh) as bs, fkfsmc, sum(fkje) as jee FROM fkwj fkwj where rq>=:cs1 and rq<=:cs2 and yhh=:cs3 group by fkfsmc ')
else query2.SQL.Add(' SELECT count(distinct djh) as bs, fkfsmc, sum(fkje) as jee FROM fkwjlx fkwjlx where rq>=:cs1 and rq<=:cs2 and yhh=:cs3 group by fkfsmc ');
query2.ParamByName('cs1').AsDateTime:=date+strtotime('00:00:00');
query2.ParamByName('cs2').AsDateTime:=date+time;
query2.ParamByName('cs3').AsString:=pass.yhbh;
query2.Open;
end;
procedure TtjForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
xx:='';
query1.Close;
query2.Close;
end;
procedure TtjForm.FormActivate(Sender: TObject);
begin
if xx='xx' then exit;
xx:='xx';
query3.Close;
query3.SQL.Clear;
if pass.yhlx='U' then query3.SQL.Add('SELECT count(djh) as djsl, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcd dcd where rq>=:cs1 and rq<=:cs2 and fkbz=1 and zfbz=0 ')
else query3.SQL.Add('SELECT count(djh) as djsl, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcdlx dcdlx where rq>=:cs1 and rq<=:cs2 and fkbz=1 and zfbz=0 ');
query3.ParamByName('cs1').AsDateTime:=date+strtotime('00:00:00');
query3.ParamByName('cs2').AsDateTime:=date+time;
query3.Open;
edit3.Text:=query3.FieldByName('jee').AsString;
labelededit2.Text:=query3.FieldByName('fwfee').AsString;
labelededit1.Text:=query3.FieldByName('see').AsString;
labelededit3.Text:=query3.FieldByName('zkee').AsString;
query3.Close;
query3.SQL.Clear;
if pass.yhlx='U' then query3.SQL.Add('SELECT count(djh) as djsl, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcd dcd where rq>=:cs1 and rq<=:cs2 ')
else query3.SQL.Add('SELECT count(djh) as djsl, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcdlx dcdlx where rq>=:cs1 and rq<=:cs2 ');
query3.ParamByName('cs1').AsDateTime:=date+strtotime('00:00:00');
query3.ParamByName('cs2').AsDateTime:=date+time;
query3.Open;
edit2.Text:=query3.FieldByName('jee').AsString;
edit1.Text:=query3.FieldByName('djsl').AsString;
query3.Close;
query3.SQL.Clear;
if pass.yhlx='U' then query3.SQL.Add('SELECT count(djh) as djsl, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcd dcd where rq>=:cs1 and rq<=:cs2 and zfbz=1 and fkbz=0')
else query3.SQL.Add('SELECT count(djh) as djsl, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcdlx dcdlx where rq>=:cs1 and rq<=:cs2 and zfbz=1 and fkbz=0');
query3.ParamByName('cs1').AsDateTime:=date+strtotime('00:00:00');
query3.ParamByName('cs2').AsDateTime:=date+time;
query3.Open;
labelededit4.Text:=query3.FieldByName('djsl').AsString;
labelededit5.Text:=query3.FieldByName('jee').AsString;
query3.Close;
query3.SQL.Clear;
if pass.yhlx='U' then query3.SQL.Add('SELECT count(djh) as djsl, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcd dcd where rq>=:cs1 and rq<=:cs2 and zfbz=1 and fkbz=1')
else query3.SQL.Add('SELECT count(djh) as djsl, sum(sl) as sle, sum(je) as jee, sum(zke) as zkee, sum(fwfe) fwfee, sum(se) as see FROM dcdlx dcdlx where rq>=:cs1 and rq<=:cs2 and zfbz=1 and fkbz=1');
query3.ParamByName('cs1').AsDateTime:=date+strtotime('00:00:00');
query3.ParamByName('cs2').AsDateTime:=date+time;
query3.Open;
labelededit7.Text:=query3.FieldByName('djsl').AsString;
labelededit8.Text:=query3.FieldByName('jee').AsString;
query3.Close;
if (edit1.Text<>'') and (edit1.Text<>'0') then labelededit6.Text:=floattostr(round(strtoint(labelededit4.Text)/(strtoint(edit1.Text)+strtoint(labelededit4.Text)) *100));
if (edit1.Text<>'') and (edit1.Text<>'0') then labelededit9.Text:=floattostr(round(strtoint(labelededit7.Text)/(strtoint(edit1.Text)+strtoint(labelededit7.Text)) *100));
query4.Close;
query4.ParamByName('cs1').AsDateTime:=date+strtotime('00:00:00');
query4.ParamByName('cs2').AsDateTime:=date+time;
query4.Open;
labelededit10.Text:=query4.FieldByName('jee').AsString;
query4.Close;
end;
procedure TtjForm.SpeedButtonfClick(Sender: TObject);
var hhyy,emp,kkk,comport_display:string;
ii,jj,kk:integer;
xxjj:real;
hh:Tprinter;
begin
//
hh:=Tprinter.Create;
jj:=hh.Printers.Count -1;
kk:=-1;
for ii:=0 to jj do
begin
if pos('收银', hh.Printers.Strings[ii])>0 then
begin
if query2.Active=false then BitBtn1Click(sender);
qrlabel1.Caption:=edit1.Text;
qrlabel6.Caption:=edit2.Text;
qrlabel8.Caption:=edit3.Text;
qrlabel12.Caption:=labelededit2.Text;
qrlabel14.Caption:=labelededit1.Text;
qrlabel16.Caption:=labelededit3.Text;
qrlabel20.Caption:=labelededit4.Text;
qrlabel22.Caption:=labelededit5.Text;
qrlabel24.Caption:=labelededit6.Text;
qrlabel26.Caption:=labelededit7.Text;
qrlabel30.Caption:=labelededit8.Text;
qrlabel28.Caption:=labelededit9.Text;
qrlabel34.Caption:=pass.yhmc;
qrlabel4.Caption:=pass.yhbh;
quickrep1.PrinterSettings.PrinterIndex:=ii;
quickrep1.Preview;
kk:=ii;
end;
end;
if kk=-1 then
begin
qtform.prtsetq.Close;
qtform.prtsetq.SQL.Clear;
qtform.prtsetq.SQL.Add('select * from prtset where type='+''''+'S'+''''+' and port like '+''''+'%'+rjsmain.computer_name+'%'+'''');
qtform.prtsetq.Open;
if qtform.prtsetq.RecordCount>0 then
begin
// if rjsmain.first_prt='true' then qtform.initprt(qtform.prtsetq.fieldbyname('port').AsString,'');
hhyy:=#27#97#1+rjsmain.dwmc+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
hhyy:=#27#97#1+datetimetostr(date+time)+' 结帐单:'+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
hhyy:=#27#97#1+'-----------------------------------'+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
hhyy:='单据笔数:'+copy(' ',1,length(trim(edit1.Text)))+trim(edit1.Text);
hhyy:=#27#64+#27#97#1+hhyy+' 应收金额:'+copy(' ',1,length(trim(edit2.Text)))+trim(edit2.Text)+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
hhyy:='退餐金额:'+copy(' ',1,length(trim(labelededit8.Text)))+trim(labelededit8.Text);
hhyy:=#27#64+#27#97#1+hhyy+' 抹零合计:'+copy(' ',1,length(trim(labelededit10.Text)))+trim(labelededit10.Text)+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
hhyy:=#27#64+#27#97#1+'实收金额:'+copy(' ',1,length(trim(edit3.Text)))+trim(edit3.Text)+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
hhyy:=#27#64+#27#97#1+'-------------以下为明细--------------'+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
ii:=1;
emp:=' ';
xxjj:=0;
query2.First;
while not query2.Eof do
begin
if ii<10 then hhyy:=' '+copy(inttostr(ii),1,1)+' '
else hhyy:=copy(inttostr(ii),1,2)+' ';
kkk:=copy(query2.FieldByName('fkfsmc').AsString,1,18);
hhyy:=hhyy +kkk+copy(emp,1,18-length(kkk))+' ';
kkk:=copy(query2.FieldByName('bs').AsString,1,10);
hhyy:=hhyy +kkk+copy(emp,1,10-length(kkk))+' ';
kkk:=copy(query2.FieldByName('jee').AsString,1,10);
hhyy:=#27#64+#27#97#1+hhyy +kkk+copy(emp,1,10-length(kkk))+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
xxjj:=xxjj+query2.FieldByName('jee').AsFloat;
ii:=ii+1;
query2.Next;
end;
hhyy:=#27#97#1+'-----------------------------------'+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
hhyy:=' 收银: '+copy(pass.yhmc,1,10)+' ';
hhyy:=#27#64+#27#97#1+hhyy+' 合计: '+ floattostr(xxjj)+#27#64;
writl(qtform.prtsetq.fieldbyname('port').AsString,hhyy);
if pos(rjsmain.computer_name,qtform.prtsetq.fieldbyname('port').AsString)>0 then
begin
ii:=pos(rjsmain.computer_name,qtform.prtsetq.fieldbyname('port').AsString);
comport_display:=copy(qtform.prtsetq.fieldbyname('port').AsString,1,ii-1)+'.'+copy(qtform.prtsetq.fieldbyname('port').AsString,ii+length(rjsmain.computer_name),length(qtform.prtsetq.fieldbyname('port').AsString));
end
else comport_display:=qtform.prtsetq.fieldbyname('port').AsString;
qtform.truc(comport_display,'');
kk:=1;
end;
qtform.prtsetq.Close;
end;
if kk=-1 then messagedlg('由于系统没有设置本地收银打印机'+#13+'您不能打印!',mtwarning,[mbok],0);
//
end;
function Ttjform.writl(port:string;disp_info:string):integer;
var
comport_display:string;
hcom:Thandle;
lpdcb:Tdcb;
sendnumber:dword;
display:string[48];
hxqlen,ii:integer;
begin
//票打驱动
if pos(rjsmain.computer_name,port)>0 then
begin
ii:=pos(rjsmain.computer_name,port);
comport_display:=copy(port,1,ii-1)+'.'+copy(port,ii+length(rjsmain.computer_name),length(port));
end
else comport_display:=port;
while comport_display=comport_display do
begin
hcom:=createfile(pchar(comport_display), generic_write,0,Nil,OPEN_EXISTING,
file_attribute_normal,0);
if hcom<>4294967295 then break;
end;
getcommstate(hcom,lpdcb);
lpdcb.baudrate:=9600;
lpdcb.DCBlength:=48;
lpdcb.Parity:=0;
lpdcb.ByteSize:=8;
lpdcb.StopBits:=1;
lpdcb.XonLim:=2048;
lpdcb.XoffLim:=512;
lpdcb.XonChar:=#17;
lpdcb.XoffChar:=#19;
setcommstate(hcom,lpdcb);
// display:=#27#97#1+disp_info+#27#64;
display:=disp_info;
hxqlen:=length(display);
writefile(hcom,display,hxqlen,sendnumber,nil);
closehandle(hcom);
result:=0;
end;
procedure TtjForm.BitBtn2Click(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?