📄 unit3.pas
字号:
prepare;
execsql;
end;
end;
with mainform.QueryInsert do
begin
tmpsql:='Insert Into trade(op,ecr,clerk,tmpclerk,saler,saledate,saletime,sno,orgtotal,total,totaldis,totalsub,';
tmpsql:=tmpsql+'pay1,pay2,pay3,pay4,pay5,pay6,cardnum,change,dept,code,name,discount,num,price,amount,sub,imark)';
tmpsql:=tmpsql+' values(''T'','''+tmpposcode+''','''+tmpclerk+''','''+tmpbkclerk+''','''+tmpsaler+''','''+date+''','''+time+''',';
tmpsql:=tmpsql+''''+inttostr(sno)+''',:ysje,:xjje,:xjzk,:xjzr,:pay1,:pay2,:pay3,:pay4,:pay5,:pay6,'''+tmpnumcode+''',:change,''T'',''T'',';
tmpsql:=tmpsql+'''T'',0,0,';
tmpsql:=tmpsql+'0,0,0,''0'')';
close;
sql.clear;
sql.add(tmpsql);
parambyname('ysje').asfloat:= strtofloat(mainform.edit1.text);
if (form3.Edit1.Text='') or (form3.Edit1.Text='0') then
parambyname('xjje').asfloat:= strtofloat(form3.edittotal.text)
else
parambyname('xjje').asfloat:= strtofloat(form3.edit1.text)-strtofloat(form3.edit2.text);
if (form3.Edit9.Text='') or (form3.Edit9.Text='0') then
parambyname('xjzk').asfloat:=0
else
parambyname('xjzk').asfloat:= strtofloat(form3.edit9.text);
if (mainform.Edittotalsub.Text='') then
parambyname('xjzr').asfloat:=0
else
parambyname('xjzr').asfloat:= strtofloat(mainform.edittotalsub.text);
if form3.edit1.Text='' then
begin
parambyname('pay1').asfloat:= strtofloat(mainform.edit1.Text);
parambyname('pay2').asfloat:= 0;
parambyname('pay3').asfloat:= 0;
parambyname('pay4').asfloat:= 0;
parambyname('pay5').asfloat:= 0; //店内票据
parambyname('pay6').asfloat:= 0; //挂帐
end
else
begin
tmpzq:=strtofloat(form3.edit2.text);
if form3.edit3.text='' then
parambyname('pay1').asfloat:=0-tmpzq
else
parambyname('pay1').asfloat:= strtofloat(form3.edit3.text)-tmpzq;
if form3.edit4.text='' then
parambyname('pay2').asfloat:=0
else
parambyname('pay2').asfloat:= strtofloat(form3.edit4.Text);
if form3.edit5.text='' then
parambyname('pay3').asfloat:=0
else
parambyname('pay3').asfloat:= strtofloat(form3.edit5.text);
if form3.edit6.text='' then
parambyname('pay4').asfloat:=0
else
parambyname('pay4').asfloat:= strtofloat(form3.edit6.text);
if form3.edit7.text='' then
parambyname('pay5').asfloat:=0
else
parambyname('pay5').asfloat:= strtofloat(form3.edit7.text);
if form3.edit8.text='' then
parambyname('pay6').asfloat:=0
else
parambyname('pay6').asfloat:= strtofloat(form3.edit8.text);
if form3.edit2.text='' then
parambyname('change').asfloat:=0
else
parambyname('change').asfloat:= strtofloat(form3.edit2.text);
end;
prepare;
execsql;
end;
//事物提交
form1.database1.Commit;
except
form1.database1.Rollback;
messagebox(form3.handle,'现在转入单机模式','提示',MB_OK+MB_ICONINFORMATION);
mainform.Labelstate.Caption:='单机';
form1.database1.Close;
form1.database1.AliasName:='curposdata';
form1.database1.Open;
//事物开始
form1.database1.StartTransaction;
try
//读取最大的交易流水号
with mainform.QueryInsert do
begin
tmpsql:='select max(sno) as Msno from trade';
close;
sql.Clear;
sql.Add(tmpsql);
try
prepare;
open;
except
messagebox(form3.handle,'最大流水号读取失败','错误',MB_OK);
exit;
end;
end;
if mainform.QueryInsert['msno']=null then
sno:=0
else
sno:=mainform.QueryInsert['msno']+1;
date:=formatdatetime('yyyy-mm-dd',now);
time:=formatdatetime('hh:nn:ss',now);
tmpclerk:=mainform.editclerk.text;
tmpbkclerk:=mainform.editbkclerk.text;
tmpsaler:=mainform.editsaler.text;
for i:=0 to row-1 do
begin
with mainform.QueryInsert do
begin
tmpsql:='Insert Into trade(op,ecr,clerk,tmpclerk,saler,saledate,saletime,sno,orgtotal,total,totaldis,totalsub,';
tmpsql:=tmpsql+'pay1,pay2,pay3,pay4,pay5,pay6,cardnum,change,dept,code,name,discount,num,price,amount,sub,imark)';
tmpsql:=tmpsql+' values(''G'','''+tmpposcode+''','''+tmpclerk+''','''+tmpbkclerk+''','''+tmpsaler+''','''+date+''','''+time+''',';
tmpsql:=tmpsql+''''+inttostr(sno)+''',0,0,0,0,0,0,0,0,0,0,''0'',0,'''+mainform.stringGrid1.cells[2,i]+''','''+mainform.stringGrid1.cells[0,i]+''','''+trim(mainform.stringGrid1.cells[1,i])+''',';
tmpsql:=tmpsql+''''+mainform.stringGrid1.cells[5,i]+''','''+mainform.stringGrid1.cells[4,i]+''',';
tmpsql:=tmpsql+':tmpdj,:tmpje,:tmpzr,''0'')';
close;
sql.clear;
sql.add(tmpsql);
parambyname('tmpdj').asfloat:= strtofloat(mainform.stringGrid1.cells[3,i]);
parambyname('tmpje').asfloat:= strtofloat(mainform.stringGrid1.cells[6,i]);
parambyname('tmpzr').asfloat:= strtofloat(mainform.stringGrid1.cells[7,i]);
prepare;
execsql;
end;
end;
with mainform.QueryInsert do
begin
tmpsql:='Insert Into trade(op,ecr,clerk,tmpclerk,saler,saledate,saletime,sno,orgtotal,total,totaldis,totalsub,';
tmpsql:=tmpsql+'pay1,pay2,pay3,pay4,pay5,pay6,cardnum,change,dept,code,name,discount,num,price,amount,sub,imark)';
tmpsql:=tmpsql+' values(''T'','''+tmpposcode+''','''+tmpclerk+''','''+tmpbkclerk+''','''+tmpsaler+''','''+date+''','''+time+''',';
tmpsql:=tmpsql+''''+inttostr(sno)+''',:ysje,:xjje,:xjzk,:xjzr,:pay1,:pay2,:pay3,:pay4,:pay5,:pay6,'''+tmpnumcode+''',:change,''T'',''T'',';
tmpsql:=tmpsql+'''T'',0,0,';
tmpsql:=tmpsql+'0,0,0,''0'')';
close;
sql.clear;
sql.add(tmpsql);
parambyname('ysje').asfloat:= strtofloat(mainform.edit1.text);
if (form3.Edit1.Text='') or (form3.Edit1.Text='0') then
parambyname('xjje').asfloat:= strtofloat(form3.edittotal.text)
else
parambyname('xjje').asfloat:= strtofloat(form3.edit1.text)-strtofloat(form3.edit2.text);
if (form3.Edit9.Text='') or (form3.Edit9.Text='0') then
parambyname('xjzk').asfloat:=0
else
parambyname('xjzk').asfloat:= strtofloat(form3.edit9.text);
if (mainform.Edittotalsub.Text='') then
parambyname('xjzr').asfloat:=0
else
parambyname('xjzr').asfloat:= strtofloat(mainform.edittotalsub.text);
if form3.edit1.Text='' then
begin
parambyname('pay1').asfloat:= strtofloat(mainform.edit1.Text);
parambyname('pay2').asfloat:= 0;
parambyname('pay3').asfloat:= 0;
parambyname('pay4').asfloat:= 0;
parambyname('pay5').asfloat:= 0; //店内票据
parambyname('pay6').asfloat:= 0; //挂帐
end
else
begin
tmpzq:=strtofloat(form3.edit2.text);
if form3.edit3.text='' then
parambyname('pay1').asfloat:=0-tmpzq
else
parambyname('pay1').asfloat:= strtofloat(form3.edit3.text)-tmpzq;
if form3.edit4.text='' then
parambyname('pay2').asfloat:=0
else
parambyname('pay2').asfloat:= strtofloat(form3.edit4.Text);
if form3.edit5.text='' then
parambyname('pay3').asfloat:=0
else
parambyname('pay3').asfloat:= strtofloat(form3.edit5.text);
if form3.edit6.text='' then
parambyname('pay4').asfloat:=0
else
parambyname('pay4').asfloat:= strtofloat(form3.edit6.text);
if form3.edit7.text='' then
parambyname('pay5').asfloat:=0
else
parambyname('pay5').asfloat:= strtofloat(form3.edit7.text);
if form3.edit8.text='' then
parambyname('pay6').asfloat:=0
else
parambyname('pay6').asfloat:= strtofloat(form3.edit8.text);
if form3.edit2.text='' then
parambyname('change').asfloat:=0
else
parambyname('change').asfloat:= strtofloat(form3.edit2.text);
end;
prepare;
execsql;
end;
//事物提交
form1.database1.Commit;
except
form1.database1.Rollback;
messagebox(form3.handle,'数据写入服务器失败','错误',MB_OK);
exit;
end;
end;
if mainform.IsPrinted then
begin
//发并口打印
//打开lpt1口
try
stc522open('2');
writestring(' 蓝邮数码科技有限公司'); //SWORDZJ改
writestring(' 北京电子商务服务中心'); //SWORDZJ改
writestring('');
tmpposcode:=trim(mainform.Labelposcode.text);
tmpdate:=formatdatetime('yyyy-mm-dd hh:mm',now);
writestring('收款机:'+tmpposcode+' '+'收款员:'+mainform.editclerk.Text);
writestring('日期:'+tmpdate+' '+'流水号:'+inttostr(sno));
writestring('编码 品名 单价 数量 金额');
writestring('--------------------------------');
//打印数据
for i:=0 to row-1 do
begin
writestring(mainform.stringGrid1.cells[0,i]+''+mainform.stringGrid1.cells[1,i]+' '+mainform.stringGrid1.cells[3,i]+' '+mainform.stringGrid1.cells[4,i]+' '+mainform.stringGrid1.cells[6,i]);
end;
writestring('--------------------------------');
//打印总计
if (edit1.Text='') or (edit1.Text='0') then
begin
tmpreceive:=edittotal.text;
tmpback:='0';
end
else
begin
tmpreceive:=edit1.text;
tmpback:=edit2.text;
end;
writestring('合计金额:'+mainform.edit1.text);
writestring('应收金额:'+edittotal.text);
writestring('实收金额:'+tmpreceive+' '+'找零:'+tmpback);
if edit3.Text<>'' then
writestring('现金:'+edit3.Text);
if edit4.Text<>'' then
writestring('支票:'+edit4.Text);
if edit5.Text<>'' then
writestring('信用卡:'+edit5.Text);
if edit6.Text<>'' then
writestring('其他票据:'+edit6.Text);
if edit7.Text<>'' then
writestring('店内票据:'+edit7.Text);
if edit8.Text<>'' then
writestring('挂帐:'+edit8.Text);
writestring(' 谢谢惠顾 欢迎再来!');
writestring(' 顾客留存!');
writestring(' ');
writestring('联系电话:63172650'); //swordzj 加
for i:=1 to 8 do
writestring('');
//切纸
writestring(chr($1b)+chr($69));
//关闭端口
stc522close('2');
except
messagebox(form3.handle,'打印机没准备好!','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
end;
// 清屏幕
for i:=0 to row-1 do
for j:=0 to 7 do
begin
mainform.stringGrid1.Cells[j,i]:='';
end;
mainform.edit1.text:='';
mainform.edit2.text:='';
mainform.edit3.text:='';
mainform.Editsaler.Text:='';
mainform.Edittotalsub.Text:='';
row:=0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -