⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit9.pas

📁 PosEasy收银系统源码,Pos机前后台管理代码
💻 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 + -