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

📄 printticket.~pa

📁 一个典当行的业务管理系统程序
💻 ~PA
📖 第 1 页 / 共 2 页
字号:
unit PrintTicket;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls;

type
  TfrmPrint = class(TForm)
    cmdExit: TButton;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    txtPawnTicket: TEdit;
    cmdPTicket: TButton;
    cmdVTicket: TButton;
    Label2: TLabel;
    txtTicketCode: TEdit;
    cmdPFp: TButton;
    cmdVFp: TButton;
    staPrintTicket: TStatusBar;
    procedure cmdExitClick(Sender: TObject);
    procedure cmdVTicketClick(Sender: TObject);
    procedure cmdPTicketClick(Sender: TObject);
    procedure cmdVFpClick(Sender: TObject);
    procedure cmdPFpClick(Sender: TObject);
  private
    { Private declarations }
    procedure PrintTicket(TicketCode:String);
    procedure PrintFP(TicketCode:String);
    Function ConverBig(Money:Double):string;

  public
    { Public declarations }
    Function MoneyFormat(InputStr:string;BlankNum:integer):string;
  end;

var
  frmPrint: TfrmPrint;
  FpStatus:string;
implementation

uses dmPawn, rptTicket, Msg, FpPrint;


{$R *.DFM}
Function TfrmPrint.MoneyFormat(InputStr:string;BlankNum:integer):string;
var
C:integer;
begin
     Result:='';
     for C:=1 to Length(InputStr) do
         Result:=Result+InputStr[C]+StringOfChar(' ',BlankNum);
     //Result:=format('%s',[Result]);
end;

//将数字金额转换为大写金额
Function TfrmPrint.ConverBig(Money:Double):string;
type
    TUnitArray=array[0..9]of string;
    TNumberArray=array[0..9]of string;
var
   tempStr:string;
   i:integer;
   ThisMoney:Integer;
   UnitArray:TUnitArray;
   NumberArray:TNumberArray;
begin
     for i:=0 to 9 do
     begin
          case i of
          0:
            begin
                 UnitArray[i]:='分';
                 NumberArray[i]:='零';
            end;
          1:
            begin
                 UnitArray[i]:='角';
                 NumberArray[i]:='壹';
            end;
          2:
            begin
                 UnitArray[i]:='元';
                 NumberArray[i]:='贰';
            end;
          3:
            begin
                 UnitArray[i]:='拾';
                 NumberArray[i]:='叁';
            end;
          4:
            begin
                 UnitArray[i]:='佰';
                 NumberArray[i]:='肆';
            end;
          5:
            begin
                 UnitArray[i]:='仟';
                 NumberArray[i]:='伍';
            end;
          6:
            begin
                 UnitArray[i]:='万';
                 NumberArray[i]:='陆';
            end;
          7:
            begin
                 UnitArray[i]:='拾万';
                 NumberArray[i]:='柒';
            end;
          8:
            begin
                 UnitArray[i]:='佰万';
                 NumberArray[i]:='捌';
            end;
          9:
            begin
                 UnitArray[i]:='仟万';
                 NumberArray[i]:='玖';
            end;
          end; //end case
     end; //end for
     tempStr:='';
     i:=0;
     ThisMoney:=Trunc(Money*100);
     while Trunc(ThisMoney/10)>0 do
     begin
          tempStr:=NumberArray[ThisMoney mod 10] + UnitArray[i] + tempStr;
          ThisMoney:=Trunc(ThisMoney/10);
          i:=i+1;
     end;
     tempStr:=NumberArray[ThisMoney mod 10] + UnitArray[i] + tempStr;
     ConverBig:=tempStr;
end;

//打印当票
procedure TfrmPrint.PrintTicket(TicketCode:string);
var
   Sql:string;
   PreCode,PawnerName,Address,CerName,CerCode,Tel,Zip,LinkMan:string;
   MonthRate,FeeRate,PawnMoney,FeeMoney,RealMoney:string;
   CYear,CMonth,CDay:word;
   CreateYear,CreateMonth,CreateDay:string;
   DBeginYear,DBeginMonth,DBeginDay,DEndYear,DEndMonth,DEndDay:word;
   XBeginYear,XBeginMonth,XBeginDay,XEndYear,XEndMonth,XEndDay:word;
   XBYear,XBMonth,XBDay,XEYear,XEMonth,XEDay:string;
   DBeginDate,DEndDate,XBeginDate,XEndDate:TDateTime;
   FPawnMoney,FFeeMoney,FRealMoney:Double;
   Counter,I:integer;
begin
     Sql:='select h.PrePawnTicketCode,h.PawnerName,h.PawnerAddress,h.PostCode,h.CertificateName,';
     Sql:=Sql+'h.CertificateCode,h.TelephoneCode,h.Linkman,h.MonthRate,';
     Sql:=Sql+'h.FeeRate,h.TotalPawnMoney,h.SynthesizeFee,h.RealPayMoney,';
     Sql:=Sql+'h.CreateDate,h.PawnBeginDate,h.PawnEndDate from PawnHead_Tbl as h ';
     Sql:=Sql+'where h.PawnTicketCode=:PawnCode ';
     with dmPawnFrm do
     begin
          dqHeadUn.Close;
          dqHeadUn.SQL.Clear;
          dqHeadUn.SQL.Add(Sql);
          dqHeadUn.ParamByName('PawnCode').asstring:=TicketCode;
          dqHeadUn.Open;
          if dqHeadUn.IsEmpty=False then
          begin
               PawnerName:=dqHeadUn.FieldByName('PawnerName').Asstring;
               Address:=dqHeadUn.FieldByName('PawnerAddress').Asstring;
               Zip:=dqHeadUn.FieldByName('PostCode').Asstring;
               CerName:=dqHeadUn.FieldByName('CertificateName').Asstring;
               CerCode:=dqHeadUn.FieldByName('CertificateCode').Asstring;
               Tel:=dqHeadUn.FieldByName('TelephoneCode').Asstring;
               LinkMan:=dqHeadUn.FieldByName('LinkMan').Asstring;
               MonthRate:=floattostr(dqHeadUn.FieldByName('MonthRate').asfloat)+'%';
               //format('%3f',[dqHeadUn.FieldByName('MonthRate').asfloat])+'%';
               FeeRate:=floattostr(dqHeadUn.FieldByName('FeeRate').asfloat)+'%';
               //format('%3f',[dqHeadUn.FieldByName('FeeRate').asfloat])+'%';
               PawnMoney:=format('%10d',[Trunc(dqHeadUn.FieldByName('TotalPawnMoney').asfloat*100)]);
               FPawnMoney:=dqHeadUn.FieldByName('TotalPawnMoney').asfloat;
               FeeMoney:=format('%8.2f',[dqHeadUn.FieldByName('SynthesizeFee').asfloat]);
               FFeeMoney:= dqHeadUn.FieldByName('SynthesizeFee').asfloat;
               RealMoney:=format('%8.2f',[dqHeadUn.FieldByName('RealPayMoney').asfloat]);
               FRealMoney:=dqHeadUn.FieldByName('RealPayMoney').asfloat;
               DecodeDate(dqHeadUn.FieldByName('CreateDate').Value,CYear,CMonth,CDay);
               CreateYear:=inttostr(CYear);
               CreateMonth:=inttostr(CMonth);
               CreateDay:=inttostr(CDay);
               //判断是否有原当票编号,即表示此当票有续当期限
               PreCode:=dqHeadUn.FieldByName('PrePawnTicketCode').Asstring;
               if PreCode<>'' then  //当前的是续当
               begin
                    //将取出的日期放入变量中
                    XBeginDate:=dqHeadUn.FieldByName('PawnBeginDate').Value;
                    XEndDate:=dqHeadUn.FieldByName('PawnEndDate').Value;
                    //再从历史头表中取出原当日期
                    Sql:='select PawnBeginDate,PawnEndDate from PHHistory_Tbl ';
                    Sql:=Sql+'where PawnTicketCode=:PawnCode and Status=''未赎'' ';
                    dqHeadUn.Close;
                    dqHeadUn.SQL.Clear;
                    dqHeadUn.SQL.Add(Sql);
                    dqHeadUn.ParamByName('PawnCode').asstring:=PreCode;
                    dqHeadUn.Open;
                    if dqHeadUn.IsEmpty=False then
                    begin
                         DBeginDate:=dqHeadUn.FieldByName('PawnBeginDate').Value;
                         DEndDate:=dqHeadUn.FieldByName('PawnEndDate').Value;
                    end;
               end
               else   //当前的是典当
               begin
                    DBeginDate:=dqHeadUn.FieldByName('PawnBeginDate').Value;
                    DEndDate:=dqHeadUn.FieldByName('PawnEndDate').Value;
                    XBeginDate:=0;
                    XEndDate:=0;
               end;
               //将典当日期或续当日期分解为年月日
               DecodeDate(DBeginDate,DBeginYear,DBeginMonth,DBeginDay);
               DecodeDate(DEndDate,DEndYear,DEndMonth,DEndDay);
               if (XBeginDate<>0)and (XEndDate<>0) then
               begin
                    DecodeDate(XBeginDate,XBeginYear,XBeginMonth,XBeginDay);
                    DecodeDate(XEndDate,XEndYear,XEndMonth,XEndDay);
                    XBYear:=inttostr(XBeginYear);
                    XBMonth:=inttostr(XBeginMonth);
                    XBDay:=inttostr(XBeginDay);
                    XEYear:=inttostr(XEndYear);
                    XEMonth:=inttostr(XEndMonth);
                    XEDay:=inttostr(XEndDay);
               end
               else
               begin
                    XBMonth:='    ';
                    XBDay:='    ';
                    XEYear:='    ';
                    XEMonth:='    ';
                    XEDay:='    ';
               end;
               //当户及头表
               tblPrintTicket.Close;
               tblPrintTicket.EmptyTable;
               tblPrintTicket.Open;
               tblPrintTicket.Append;
               tblPrintTicketPawnTicketCode.Value:=TicketCode;
               tblPrintTicketPawnerName.Value:=PawnerName;
               tblPrintTicketPawnerAddress.Value:=Address;
               tblPrintTicketPostCode.Value:=Zip;
               tblPrintTicketCertificateName.Value:=CerName;
               tblPrintTicketCertificateCode.Value:=CerCode;
               tblPrintTicketTelephoneCode.Value:=Tel;
               tblPrintTicketLinkMan.Value:=LinkMan;
               tblPrintTicketMonthRate.Value:=MonthRate;
               tblPrintTicketFeeRate.Value:=FeeRate;
               tblPrintTicketTotalPawnMoney.Value:=PawnMoney;
               //大写数据
               tblPrintTicketTotalPawnMoneyBig.Value:=ConverBig(FPawnMoney);
               tblPrintTicketSynthesizeFeeBig.Value:=ConverBig(FFeeMoney);
               tblPrintTicketRealPayMonthBig.Value:=ConverBig(FRealMoney);
               
               tblPrintTicketCreateDateYear.Value:=CreateYear;
               tblPrintTicketCreateDateMonth.Value:=CreateMonth;
               tblPrintTicketCreateDateDay.Value:=CreateDay;
               tblPrintTicketPawnBeginDateYear.Value:=inttostr(DBeginYear);
               tblPrintTicketPawnBeginDateMonth.Value:=inttostr(DBeginMonth);
               tblPrintTicketPawnBeginDateDay.Value:=inttostr(DBeginDay);
               tblPrintTicketPawnEndDateYear.Value:=inttostr(DEndYear);
               tblPrintTicketPawnEndDateMonth.Value:=inttostr(DEndMonth);
               tblPrintTicketPawnEndDateDay.Value:=inttostr(DEndDay);
               tblPrintTicketRePawnBeginDateYear.Value:=XBYear;
               tblPrintTicketRePawnBeginDateMonth.Value:=XBMonth;
               tblPrintTicketRePawnBeginDateDay.Value:=XBDay;
               tblPrintTicketRePawnEndDateYear.Value:=XEYear;
               tblPrintTicketRePawnEndDateMonth.Value:=XEMonth;
               tblPrintTicketRePawnEndDateDay.Value:=XEDay;
               tblPrintTicket.Post;
               //从细表中取出此当票的当物信息
               Sql:='select d.PawnName,d.PawnSpec,d.PawnNumber,d.AppriseValue,d.DiscountRate,';
               Sql:=Sql+'d.PawnMoney from PawnDetail_Tbl as d where d.PawnTicketCode=:PawnCode ';
               dqDetailUn.Close;
               dqDetailUn.SQL.Clear;
               dqDetailUn.SQL.Add(Sql);
               dqDetailUn.ParamByName('PawnCode').Asstring:=TicketCode;
               dqDetailUn.Open;
               if dqDetailUn.IsEmpty=False then
               begin
                    tblTicketDetail.Close;
                    tblTicketDetail.EmptyTable;
                    tblTicketDetail.Open;
                    dqDetailUn.First;
                    Counter:=0;
                    while not dqDetailUn.Eof do
                    begin
                         //当物
                         Counter:=Counter+1;
                         tblTicketDetail.Append;
                         tblTicketDetailPawnTicketCode.Value:=TicketCode;
                         tblTicketDetailPawnName.Value:=dqDetailUn.FieldByName('PawnName').Asstring;
                         tblTicketDetailPawnSpec.Value:=dqDetailUn.FieldByName('PawnSpec').Asstring;
                         tblTicketDetailPawnNumber.Value:=dqDetailUn.FieldByName('PawnNumber').Asstring;
                         tblTicketDetailMonthRate.Value:=MonthRate;
                         tblTicketDetailFeeRate.Value:=FeeRate;
                         tblTicketDetailAppriseValue.Value:=format('%8.2f',[dqDetailUn.FieldByName('AppriseValue').asfloat]);
                         tblTicketDetailDiscountRate.Value:=floattostr(dqDetailUn.FieldByName('DiscountRate').asfloat)+'%';
                         //format('%3f',[dqDetailUn.FieldByName('DiscountRate').asfloat])+'%';
                         tblTicketDetailPawnMoney.Value:=format('%10d',[Trunc(dqDetailUn.FieldByName('PawnMoney').asfloat*100)]);
                         tblTicketDetail.Post;
                         dqDetailUn.Next;
                    end;
                    if Counter<3 then
                    begin
                          case Counter of
                          1:   //添加两条空记录
                            begin
                                 for I:=1 to 2 do
                                 begin

⌨️ 快捷键说明

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