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

📄 zzzp.~pas

📁 支票打印
💻 ~PAS
字号:
unit zzzp;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DBCtrls, Mask, DB, ADODB,Printers;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label5: TLabel;
    DBEdit5: TDBEdit;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    Label11: TLabel;
    DBEdit11: TDBEdit;
    Label12: TLabel;
    DBEdit12: TDBEdit;
    Label13: TLabel;
    DBEdit13: TDBEdit;
    Label14: TLabel;
    DBEdit14: TDBEdit;
    DBRadioGroup1: TDBRadioGroup;
    Label9: TLabel;
    Panel1: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    DBRadioGroup2: TDBRadioGroup;
    Label10: TLabel;
    Button7: TButton;
    Label8: TLabel;
    DBEdit8: TDBEdit;
    Label4: TLabel;
    DBEdit4: TDBEdit;
    ADOTable1: TADOTable;
    ADOTable1DSDesigner: TWideStringField;
    ADOTable1DSDesigner2: TWideStringField;
    ADOTable1DSDesigner3: TWideStringField;
    ADOTable1DSDesigner4: TWideStringField;
    ADOTable1DSDesigner5: TWideStringField;
    ADOTable1DSDesigner6: TWideStringField;
    ADOTable1DSDesigner7: TFloatField;
    ADOTable1DSDesigner8: TWideStringField;
    ADOTable1DSDesigner9: TWideStringField;
    ADOTable1DSDesigner10: TWideStringField;
    ADOTable1DSDesigner11: TDateTimeField;
    ADOTable1DSDesigner12: TWideStringField;
    ADOTable1DSDesigner13: TWideStringField;
    ADOTable1DSDesigner14: TWideStringField;
    Label15: TLabel;
    Label7: TLabel;
    DBEdit7: TDBEdit;
    Label16: TLabel;
    procedure DBEdit1Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure DBEdit11Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DBEdit7Change(Sender: TObject);
    procedure DBEdit4Click(Sender: TObject);
    procedure ADOTable1AfterOpen(DataSet: TDataSet);
    procedure Button7Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type je=record   //存放大写金额的数字
          dw:string;
end;

type dx=record      //存放大写字母
     yr:string;
end ;

type xxzm=record   //存放小写字额
          x:integer;
          y:Integer;
          ch:string;
end;

type zfsz=record      //存放字符串及每个字符后面零的个数
      ch:string;
      num:integer;
end;

var
  Form1: TForm1;
  xxje:array[1..10] of je;
  rq:array[0..31] of dx;
  sz:array[1..11] of xxzm;
  zs:array[1..11] of zfsz;

implementation

uses Unit2;

{$R *.dfm}
function NumToChar( n:Real): wideString; //可以到万亿,并可随便扩大
const
 cNum:WideString='零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分';
 cCha:array[0..1,0..11]of string =
 (( '零仟','零佰','零拾','零零零','零零',
 '零亿','零万','零元','亿万','零角','零分','零整'),
 ( '零','零','零','零','零','亿','万','元','亿','零','整','整'));
var i :Integer;
    sNum :WideString;
begin
result:= '';
sNum:=FormatFloat('0',n*100);
for i:=1 to Length(sNum) do
  result := result + cNum[ord(sNum[i])-47] + cNum[26-Length(sNum)+i];
for i:= 0 to 11 do //去掉多余的零
  result := StringReplace(result, cCha[0,i], cCha[1,i], [rfReplaceAll]);
end;

procedure TForm1.DBEdit1Click(Sender: TObject);
begin
if  adotable1.State<>dsEdit then
adotable1.Edit;
DBEdit1.Text:='贰零零肆';
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
adotable1.post;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if ( not adotable1.eof) or (not adotable1.Bof) then
  adotable1.Delete;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if  not adotable1.bof then
  adotable1.Prior;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if not adotable1.Eof then
adotable1.Next;
end;

procedure TForm1.DBEdit11Click(Sender: TObject);
begin
dbedit11.Text:=DateToStr(Date);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
   w,h,i:integer;
begin
w:=GetDeviceCaps(printer.Handle,LOGPIXELSX);
h:=GetDeviceCaps(printer.Handle,LOGPIXELSY);
xxje[1].dw:='分';
xxje[2].dw:='角';
xxje[3].dw:='元';
xxje[4].dw:='拾';
xxje[5].dw:='百';
xxje[6].dw:='千';
xxje[7].dw:='万';
xxje[8].dw:='拾万';
xxje[9].dw:='百万';
xxje[10].dw:='千万';
rq[0].yr:='零';
rq[1].yr:='壹';
rq[2].yr:='贰';
rq[3].yr:='叁';
rq[4].yr:='肆';
rq[5].yr:='伍';
rq[6].yr:='陆';
rq[7].yr:='柒';
rq[8].yr:='捌';
rq[9].yr:='玖';
rq[10].yr:='拾';
rq[11].yr:='壹拾壹';
rq[12].yr:='壹拾贰';
rq[13].yr:='壹拾叁';
rq[14].yr:='壹拾肆';
rq[15].yr:='壹拾伍';
rq[16].yr:='壹拾陆';
rq[17].yr:='壹拾柒';
rq[18].yr:='壹拾捌';
rq[19].yr:='壹拾玖';
rq[21].yr:='贰拾壹';
rq[21].yr:='贰拾贰';
rq[23].yr:='贰拾叁';
rq[24].yr:='贰拾肆';
rq[25].yr:='贰拾伍';
rq[26].yr:='贰拾陆';
rq[27].yr:='贰拾柒';
rq[28].yr:='贰拾捌';
rq[29].yr:='贰拾玖';
rq[30].yr:='叁拾';
rq[31].yr:='叁拾壹';
sz[1].x:=trunc(155*w/25.4)+100;
sz[1].y:=trunc(25*h/25.4);
sz[1].ch:=' ';
for i:=2 to 11 do
begin
sz[i].x:=sz[i-1].x+25;
sz[i].y:=sz[i-1].y;
sz[i].ch:=' ';
end
end;

procedure TForm1.DBEdit7Change(Sender: TObject);
begin
dbedit6.text:=NumToChar(strtofloat(dbedit7.Text));
end;

procedure TForm1.DBEdit4Click(Sender: TObject);
begin
form2.show;
end;

procedure TForm1.ADOTable1AfterOpen(DataSet: TDataSet);
begin
adotable1.Edit;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
adotable1.Insert;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
   w,h,m,n,i,j,l:integer;
   str1:string;
begin
w:=GetDeviceCaps(printer.Handle,LOGPIXELSX);
h:=GetDeviceCaps(printer.Handle,LOGPIXELSY);
try
 with printer do begin
  Canvas.Font.Name:='宋体';
  Canvas.Font.Size:=12;
  begindoc;
 Canvas.TextOut(round(w*90/25.4),round(h*12/25.4),adotable1.fieldbyname('出票年').asstring);
 canvas.TextOut(round(w*115/25.4),round(h*12/25.4),adotable1.fieldbyname('出票月').asstring);
 canvas.TextOut(round(w*130/25.4),round(h*12/25.4),adotable1.fieldbyname('出票日').asstring);
 canvas.Font.size:=10;
 canvas.TextOut(round(w*80/25.4),round(h*16/25.4),adotable1.fields[3].asstring);
 canvas.Font.Size:=11;
 canvas.TextOut(round(w*170/25.4),round(h*16/25.4),adotable1.fieldbyname('出票人帐号').asstring);
 canvas.Font.Size:=12;
 canvas.TextOut(round(w*84/25.4),round(h*24/25.4),adotable1.fieldbyname('大写金额').asstring);
 str1:=inttostr(trunc(adotable1.fieldbyname('小写金额').asfloat*100));
 n:=length(str1);
 j:=1;
 sz[12-n-1].ch:='¥';
 sz[12-n-1].x:=sz[12-n-1].x-5;
 if n+1<11 then
  sz[n+1].ch:='0';
  for i:=12-n to 11 DO
   begin
    sz[i].ch:=copy(str1,j,1);
    j:=j+1;
   end;
  for i:=12-n-1 to 11 do
  canvas.TextOut(sz[i].x,sz[i].y,sz[i].ch);
  canvas.Font.Name:='宋体';
  canvas.Font.Size:=12;
  m:=trunc(w*69/25.4)+5;   //72
  l:=round(h*60/25.4)+50;
  canvas.TextOut(m,l,copy(adotable1.fieldbyname('支付密码').asstring,1,1));
  canvas.TextOut(m+35,l,copy(adotable1.fieldbyname('支付密码').asstring,2,1));
  canvas.TextOut(m+65,l,copy(adotable1.fieldbyname('支付密码').asstring,3,1));
  canvas.TextOut(m+92,l,copy(adotable1.fieldbyname('支付密码').asstring,4,1));
  canvas.TextOut(m+120,l,copy(adotable1.fieldbyname('支付密码').asstring,5,1));
  canvas.TextOut(m+145,l,copy(adotable1.fieldbyname('支付密码').asstring,6,1));   //140
  canvas.TextOut(m+170,l,copy(adotable1.fieldbyname('支付密码').asstring,7,1));
  canvas.TextOut(m+200,l,copy(adotable1.fieldbyname('支付密码').asstring,8,1));
  canvas.TextOut(m+230,l,copy(adotable1.fieldbyname('支付密码').asstring,9,1));
  canvas.TextOut(m+260,l,copy(adotable1.fieldbyname('支付密码').asstring,10,1));
  canvas.TextOut(m+290,l,copy(adotable1.fieldbyname('支付密码').asstring,11,1));
  canvas.TextOut(m+330,l,copy(adotable1.fieldbyname('支付密码').asstring,12,1));
  canvas.TextOut(m+360,l,copy(adotable1.fieldbyname('支付密码').asstring,13,1));
  canvas.TextOut(m+390,l,copy(adotable1.fieldbyname('支付密码').asstring,14,1));
  canvas.TextOut(m+410,l,copy(adotable1.fieldbyname('支付密码').asstring,15,1));
  canvas.TextOut(m+440,l,copy(adotable1.fieldbyname('支付密码').asstring,16,1));
 end;
 finally
  printer.EndDoc;
end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -