📄 unit9.pas
字号:
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, Grids, DBGrids, Db, DBTables,printers;
type
TFormcash = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
DBGrid1: TDBGrid;
Queryselect: TQuery;
DataSource1: TDataSource;
Queryselectid: TIntegerField;
Queryselectreceiver: TStringField;
Queryselectgiver: TStringField;
Queryselectdate: TStringField;
Queryselecttotal: TFloatField;
Queryselectpay1: TFloatField;
Queryselectpay2: TFloatField;
Queryselectpay3: TFloatField;
Queryselectpay4: TFloatField;
Queryselectpay5: TFloatField;
Queryselectpay6: TFloatField;
Queryreport1: TQuery;
procedure FormShow(Sender: TObject);
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Formcash: TFormcash;
implementation
uses unit1,unit2,unit8;
{$R *.DFM}
procedure TFormcash.FormShow(Sender: TObject);
var
tmpsql:string;
curdate:string;
begin
form1.Hide;
curdate:=formatdatetime('yyyy-mm-dd',now)+'%';
with queryselect do
begin
tmpsql:='select * from casher where receiver='''+trim(clerk)+''' and date like '''+curdate+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
try
open;
except
messagebox(mainform.handle,'数据库连接失败','错误',MB_OK);
exit;
end;
end;
end;
procedure TFormcash.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
begin
application.CreateForm(Tformget,formget);
formget.showmodal;
end;
end;
procedure TFormcash.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_ESCAPE then
begin
form1.Show;
form1.User.SetFocus;
formcash.Close;
end;
end;
procedure TFormcash.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var
tmpsql,curdate,tmpdatetime:string;
tmptotal,cash,tmpcheck,tmpcard,tmpother,tmpshop,tmpwait:string;
selectedrow:string;
begin
if key='l' then
begin
if messagebox(handle,'您确定要删除吗?','警告',MB_OKCANCEL+MB_ICONINFORMATION)=IDOK then
begin
selectedrow:=dbgrid1.SelectedField.DataSet.Fields.Fields[0].DisplayText;
with queryreport1 do
begin
tmpsql:='delete from casher where id='''+selectedrow+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
try
execsql;
except
messagebox(form1.handle,'数据库连接失败','错误',MB_OK+MB_ICONERROR);
exit;
end;
end;
queryselect.Active:=false;
queryselect.Active:=true;
end;
end;
if key='b' then
begin
with queryreport1 do
begin
curdate:=formatdatetime('yyyy-mm-dd',now)+'%';
tmpsql:='select sum(total) as total,sum(pay1) as spay1,sum(pay2) as spay2,sum(pay3) as spay3,';
tmpsql:=tmpsql+'sum(pay4) as spay4,sum(pay5) as spay5,sum(pay6) as spay6 from casher where receiver='''+clerk+''' and date like '''+curdate+'''';
close;
sql.clear;
sql.add(tmpsql);
prepare;
try
open;
except
messagebox(form1.handle,'数据库连接失败','错误',MB_OK+MB_ICONERROR);
exit;
end;
end;
//打印
while not queryreport1.Eof do
begin
try
printer.BeginDoc;
{ //切纸
printer.canvas.Font.name:='control';
printer.Canvas.Font.Size:=10;
printer.Canvas.TextOut(10,10,'P');
}
//设置字体
printer.canvas.Font.name:='宋体 8.9cpi';
printer.Canvas.Font.Size:=8;
//打印标题
tmpdatetime:=formatdatetime('yyyy-mm-dd hh:mm',now);
printer.Canvas.TextOut(30,10,'收银员组长交款报表');//swordzj
printer.Canvas.TextOut(5,30,'收款员:'+clerk); //打印pos机编号呵日期
printer.Canvas.TextOut(5,45,'日期:'+tmpdatetime);
printer.Canvas.TextOut(10,60,'付款方式'+' '+'金额');
//打印横线
printer.Canvas.TextOut(10,70,'---------------------------');
//打印数据
if queryreport1['total']=null then
tmptotal:='0'
else
tmptotal:=queryreport1['total'];
if queryreport1['spay1']=null then
cash:='0'
else
cash:=queryreport1['spay1'];
if queryreport1['spay2']=null then
tmpcheck:='0'
else
tmpcheck:=queryreport1['spay2'];
if queryreport1['spay3']=null then
tmpcard:='0'
else
tmpcard:=queryreport1['spay3'];
if queryreport1['spay4']=null then
tmpother:='0'
else
tmpother:=queryreport1['spay4'];
if queryreport1['spay5']=null then
tmpshop:='0'
else
tmpshop:=queryreport1['spay5'];
if queryreport1['spay6']=null then
tmpwait:='0'
else
tmpwait:=queryreport1['spay6'];
printer.Canvas.TextOut(10,80,'现金'+' '+cash);
printer.Canvas.TextOut(10,90,'支票'+' '+tmpcheck);
printer.Canvas.TextOut(10,100,'信用卡'+' '+tmpcard);
printer.Canvas.TextOut(10,110,'其他票据'+' '+tmpother);
printer.Canvas.TextOut(10,120,'店内票据'+' '+tmpshop);
printer.Canvas.TextOut(10,130,'挂帐'+' '+tmpwait);
printer.Canvas.TextOut(10,150,'总计'+' '+tmptotal);
//打印横线
printer.Canvas.TextOut(10,160,'---------------------------');
printer.Canvas.TextOut(10,170,'谢谢使用本系统');
printer.Canvas.TextOut(50,row*15+180,' ');
printer.Canvas.TextOut(50,row*15+190,' ');
printer.Canvas.TextOut(50,row*15+200,' ');
printer.Canvas.TextOut(50,row*15+210,' ');
printer.Canvas.TextOut(50,row*15+220,' ');
printer.Canvas.TextOut(50,row*15+230,' ');
printer.Canvas.TextOut(50,row*15+240,' ');
printer.Canvas.TextOut(50,row*15+250,' ');
printer.Canvas.TextOut(50,row*15+260,' ');
printer.EndDoc;
{
//切纸
printer.BeginDoc;
printer.Canvas.Font.Name:='control';
printer.Canvas.Font.Size:=10;
printer.Canvas.TextOut(10,10,'P');
printer.EndDoc;
}
except
printer.Abort;
exit;
end;
queryreport1.Next;
end;
end;
end;
procedure TFormcash.FormClose(Sender: TObject; var Action: TCloseAction);
begin
form1.User.SetFocus;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -