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

📄 printticket.~pa

📁 一个典当行的业务管理系统程序
💻 ~PA
📖 第 1 页 / 共 2 页
字号:
                                      tblTicketDetail.Append;
                                      tblTicketDetailPawnTicketCode.Value:=TicketCode;
                                      tblTicketDetailPawnName.Value:='';
                                      tblTicketDetailPawnSpec.Value:='';
                                      tblTicketDetailPawnNumber.Value:='';
                                      tblTicketDetailMonthRate.Value:='';
                                      tblTicketDetailFeeRate.Value:='';
                                      tblTicketDetailAppriseValue.Value:='';
                                      tblTicketDetailDiscountRate.Value:='';
                                      tblTicketDetailPawnMoney.Value:='';
                                      tblTicketDetail.Post;
                                 end;
                            end;
                          2:    //添加1条空记录
                            begin
                                 tblTicketDetail.Append;
                                 tblTicketDetailPawnTicketCode.Value:=TicketCode;
                                 tblTicketDetailPawnName.Value:='';
                                 tblTicketDetailPawnSpec.Value:='';
                                 tblTicketDetailPawnNumber.Value:='';
                                 tblTicketDetailMonthRate.Value:='';
                                 tblTicketDetailFeeRate.Value:='';
                                 tblTicketDetailAppriseValue.Value:='';
                                 tblTicketDetailDiscountRate.Value:='';
                                 tblTicketDetailPawnMoney.Value:='';
                                 tblTicketDetail.Post;
                            end;
                          end;
                    end;
               end;
          end
          else   //此当票不存在
          begin
               dqHeadUn.Close;
               messagedlg(Msg.MsgPawnNoExist,mtInformation,[mbYes],0);
               exit;
          end;
     end;
end;

//打印发票
procedure TfrmPrint.PrintFP(TicketCode:String);
var
   Sql:string;
   TotalMoneyBig:string;
   Year,Month,Day:word;
   MonthRate,SysFee,TotalMoney,TotalPawnMoney:Double;
   DBeginDate,DEndDate:TDateTime;
   XBeginDate,XEndDate:TDateTime;
   i:integer;
begin
     //取出当前系统时间作为发票产生时间
     DecodeDate(Date,Year,Month,Day);
     if FpStatus='新当'then
     begin
          Sql:='select h.PawnerName,h.SynthesizeFee,h.PawnBeginDate,';
          Sql:=Sql +'h.PawnEndDate,h.TotalPawnMoney 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
                    //MonthRate:=dqHeadUn.FieldByName('MonthRateFee').asfloat;
                    SysFee:=dqHeadUn.FieldByName('SynthesizeFee').asfloat;
                    TotalPawnMoney:=dqHeadUn.FieldByName('TotalPawnMoney').asfloat;
                    TotalMoney:=SysFee;
                    TotalMoneyBig:=ConverBig(TotalMoney);
                    DBeginDate:=dqHeadUn.FieldByName('PawnBeginDate').AsDateTime;
                    DEndDate:=dqHeadUn.FieldByName('PawnEndDate').AsDateTime;
                    //写发票头
                    tblFpHead.Close;
                    tblFpHead.EmptyTable;
                    tblFpHead.Open;
                    tblFpHead.Append;
                    tblFpHeadPawnTicketCode.Value:=TicketCode;
                    tblFpHeadName.Value:=dqHeadUn.FieldByName('PawnerName').asstring;
                    tblFpHeadYear.Value:=inttostr(Year);
                    tblFpHeadMonth.Value:=inttostr(Month);
                    tblFpHeadDay.Value:=inttostr(Day);
                    tblFpHeadTotalMText.Value:=TotalMoneyBig;
                    tblFpHeadTotalMoney.Value:=format('%8d',[Trunc(TotalMoney*100)]);
                    tblFpHead.Post;
                    //写发票细
                    tblFpDetail.Close;
                    tblFpDetail.EmptyTable;
                    tblFpDetail.Open;
                    tblFpDetail.Append;
                    tblFpDetailPawnTicketCode.Value:=TicketCode;
                    tblFpDetailItem.Value:=TicketCode;
                    tblFpDetailItemConent.Value:='综合费用('+DateToStr(DBeginDate)+'--'+DateToStr(DEndDate)+')';
                    tblFpDetailMoney.Value:=format('%8d',[Trunc(SysFee*100)]);
                    tblFpDetail.Post;
                    tblFpDetail.Append;
                    tblFpDetailPawnTicketCode.Value:=TicketCode;
                    tblFpDetailItem.Value:='本金 '+format('%8.2f',[TotalPawnMoney]);
                    tblFpDetailItemConent.Value:='';//'综合费用('+DateToStr(XBeginDate)+'--'+DateToStr(XEndDate)+')';
                    tblFpDetailMoney.Value:='';//format('%8d',[SysFee*100]);
                    tblFpDetail.Post;
                    //再写两行空记录
                    for i:=1 to 2 do
                    begin
                        tblFpDetail.Append;
                        tblFpDetailPawnTicketCode.Value:=TicketCode;
                        tblFpDetailItem.Value:='';
                        tblFpDetailItemConent.Value:='';//'('+DateToStr(DBeginDate)+'--'+DateToStr(DEndDate)+')';
                        tblFpDetailMoney.Value:='';//format('%8d',[Trunc(MonthRate*100)]);
                        tblFpDetail.Post;
                    end;
               end;
          end;
          //exit;
     end;
     if FpStatus='续当'then
     begin
          Sql:='select h.PawnerName,h.MonthRateFee,h.SynthesizeFee,h.PawnBeginDate,';
          Sql:=Sql +'h.PawnEndDate,h.TotalPawnMoney 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
                    MonthRate:=dqHeadUn.FieldByName('MonthRateFee').asfloat;
                    SysFee:=dqHeadUn.FieldByName('SynthesizeFee').asfloat;
                    TotalPawnMoney:=dqHeadUn.FieldByName('TotalPawnMoney').asfloat;
                    TotalMoney:=MonthRate+SysFee;
                    TotalMoneyBig:=ConverBig(TotalMoney);
                    XBeginDate:=dqHeadUn.FieldByName('PawnBeginDate').AsDateTime;
                    XEndDate:=dqHeadUn.FieldByName('PawnEndDate').AsDateTime;
                    //写发票头
                    tblFpHead.Close;
                    tblFpHead.EmptyTable;
                    tblFpHead.Open;
                    tblFpHead.Append;
                    tblFpHeadPawnTicketCode.Value:=TicketCode;
                    tblFpHeadName.Value:=dqHeadUn.FieldByName('PawnerName').asstring;
                    tblFpHeadYear.Value:=inttostr(Year);
                    tblFpHeadMonth.Value:=inttostr(Month);
                    tblFpHeadDay.Value:=inttostr(Day);
                    tblFpHeadTotalMText.Value:=TotalMoneyBig;
                    tblFpHeadTotalMoney.Value:=format('%8d',[Trunc(TotalMoney*100)]);
                    tblFpHead.Post;
                    //从历史头表中取出原当的典当日期
                    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:=TicketCode;
                    dqHeadUn.Open;
                    if dqHeadUn.IsEmpty=False then
                    begin
                         DBeginDate:=dqHeadUn.FieldByName('PawnBeginDate').AsDateTime;
                         DEndDate:=dqHeadUn.FieldByName('PawnEndDate').AsDateTime;
                    end;
                    //写发票细
                    tblFpDetail.Close;
                    tblFpDetail.EmptyTable;
                    tblFpDetail.Open;
                    tblFpDetail.Append;
                    tblFpDetailPawnTicketCode.Value:=TicketCode;
                    tblFpDetailItem.Value:=TicketCode;
                    tblFpDetailItemConent.Value:='月息('+DateToStr(DBeginDate)+'--'+DateToStr(DEndDate)+')';
                    tblFpDetailMoney.Value:=format('%8d',[Trunc(MonthRate*100)]);
                    tblFpDetail.Post;
                    tblFpDetail.Append;
                    tblFpDetailPawnTicketCode.Value:=TicketCode;
                    tblFpDetailItem.Value:='本金'+format('%8.2f',[TotalPawnMoney]);
                    tblFpDetailItemConent.Value:='综合费用('+DateToStr(XBeginDate)+'--'+DateToStr(XEndDate)+')';
                    tblFpDetailMoney.Value:=format('%8d',[Trunc(SysFee*100)]);
                    tblFpDetail.Post;
                    //再写两行空记录
                    for i:=1 to 2 do
                    begin
                        tblFpDetail.Append;
                        tblFpDetailPawnTicketCode.Value:=TicketCode;
                        tblFpDetailItem.Value:='';
                        tblFpDetailItemConent.Value:='';//'('+DateToStr(DBeginDate)+'--'+DateToStr(DEndDate)+')';
                        tblFpDetailMoney.Value:='';//format('%8d',[Trunc(MonthRate*100)]);
                        tblFpDetail.Post;
                    end;
               end;
          end;
          //exit;
     end;
     if FpStatus='赎回'then
     begin
          Sql:='select h.PawnerName,h.TotalPawnMoney,h.MonthRateFee,h.PawnBeginDate,h.PawnEndDate ';
          Sql:=Sql+'from PawnHead_Tbl as h where h.PawnTicketCode=:PawnCode ';
          Sql:=Sql+'and h.Status=''赎回'' ';
          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
                    MonthRate:=dqHeadUn.FieldByName('MonthRateFee').asfloat;
                    //SysFee:=dqHeadUn.FieldByName('SynthesizeFee').asfloat;
                    TotalPawnMoney:=dqHeadUn.FieldByName('TotalPawnMoney').asfloat;
                    TotalMoney:=MonthRate+TotalPawnMoney;
                    TotalMoneyBig:=ConverBig(TotalMoney);
                    DBeginDate:=dqHeadUn.FieldByName('PawnBeginDate').AsDateTime;
                    DEndDate:=dqHeadUn.FieldByName('PawnEndDate').AsDateTime;
                    //写发票头
                    tblFpHead.Close;
                    tblFpHead.EmptyTable;
                    tblFpHead.Open;
                    tblFpHead.Append;
                    tblFpHeadPawnTicketCode.Value:=TicketCode;
                    tblFpHeadName.Value:=dqHeadUn.FieldByName('PawnerName').asstring;
                    tblFpHeadYear.Value:=inttostr(Year);
                    tblFpHeadMonth.Value:=inttostr(Month);
                    tblFpHeadDay.Value:=inttostr(Day);
                    tblFpHeadTotalMText.Value:=TotalMoneyBig;
                    tblFpHeadTotalMoney.Value:=format('%8d',[Trunc(TotalMoney*100)]);
                    tblFpHead.Post;
                    //写发票细
                    tblFpDetail.Close;
                    tblFpDetail.EmptyTable;
                    tblFpDetail.Open;
                    tblFpDetail.Append;
                    tblFpDetailPawnTicketCode.Value:=TicketCode;
                    tblFpDetailItem.Value:=TicketCode;
                    tblFpDetailItemConent.Value:='归还';//('+DateToStr(DBeginDate)+'--'+DateToStr(DEndDate)+')';
                    tblFpDetailMoney.Value:=format('%8d',[Trunc(TotalPawnMoney*100)]);
                    tblFpDetail.Post;
                    tblFpDetail.Append;
                    tblFpDetailPawnTicketCode.Value:=TicketCode;
                    tblFpDetailItem.Value:='月利息';
                    tblFpDetailItemConent.Value:='('+DateToStr(DBeginDate)+'--'+DateToStr(DEndDate)+')';
                    tblFpDetailMoney.Value:=format('%8d',[Trunc(MonthRate*100)]);
                    tblFpDetail.Post;
                    //再写两行空记录
                    for i:=1 to 2 do
                    begin
                        tblFpDetail.Append;
                        tblFpDetailPawnTicketCode.Value:=TicketCode;
                        tblFpDetailItem.Value:='';
                        tblFpDetailItemConent.Value:='';//'('+DateToStr(DBeginDate)+'--'+DateToStr(DEndDate)+')';
                        tblFpDetailMoney.Value:='';//format('%8d',[Trunc(MonthRate*100)]);
                        tblFpDetail.Post;
                    end;
               end;
          end;
          //exit;
     end;
end;

procedure TfrmPrint.cmdExitClick(Sender: TObject);
begin
     close;
end;

procedure TfrmPrint.cmdVTicketClick(Sender: TObject);
begin
     if txtPawnTicket.Text='' then
     begin
          messagedlg(Msg.MsgPawnCodeInput,mtInformation,[mbYes],0);
          exit;
     end;
     PrintTicket(txtPawnTicket.Text);
     //frmPrint.staPrintTicket.SimpleText:='正在处理预览,请稍候...';
     frptTicket.Preview;
     //frmPrint.staPrintTicket.SimpleText:='预览结束,请继续使用!';
end;

procedure TfrmPrint.cmdPTicketClick(Sender: TObject);
begin
     if txtPawnTicket.Text='' then
     begin
          messagedlg(Msg.MsgPawnCodeInput,mtInformation,[mbYes],0);
          exit;
     end;
     PrintTicket(txtPawnTicket.Text);
     frptTicket.Print;
end;

procedure TfrmPrint.cmdVFpClick(Sender: TObject);
begin
     if txtTicketCode.Text='' then
     begin
          messagedlg(Msg.MsgPawnCodeInput,mtInformation,[mbYes],0);
          exit;
     end;
     PrintFP(txtTicketCode.Text);
     frptFp.Preview;
end;

procedure TfrmPrint.cmdPFpClick(Sender: TObject);
begin
     If txtTicketCode.Text='' then
     begin
          messagedlg(Msg.MsgPawnCodeInput,mtInformation,[mbYes],0);
          exit;
     end;
     PrintFP(txtTicketCode.Text);
     frptFp.Print;
end;

end.

⌨️ 快捷键说明

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