{*******************************************************} { } { Responsive Software http://www.responsive.co.nz } { } { Copyright (c) 2003-2006 Responsive Software Limited } { } {*******************************************************} unit ReceiptReportUnit; interface uses Windows, SysUtils, Messages, Classes, Graphics, Controls, StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DatabaseObjects, Utilities, GeneralUtilities; type TReceiptReport = class(TQuickRep) TitleBand1: TQRBand; PageFooterBand1: TQRBand; CompanyNameQRLabel: TQRLabel; QRShape1: TQRShape; QRLabel4: TQRLabel; QRShape3: TQRShape; ReportFooterQRLabel: TQRLabel; DetailBand1: TQRBand; LineQRLabel: TQRLabel; QRShape2: TQRShape; SaleDateQRLabel: TQRLabel; DateQRLabel: TQRLabel; SaleTimeQRLabel: TQRLabel; SalespersonQRLabel: TQRLabel; PageNumberQRLabel: TQRLabel; procedure QuickRepBeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); procedure QuickRepNeedData(Sender: TObject; var MoreData: Boolean); procedure QuickRepStartPage(Sender: TCustomQuickRep); procedure DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); procedure QuickRepAfterPreview(Sender: TObject); procedure QuickRepAfterPrint(Sender: TObject); private PageNumber : integer; BoldLine : boolean; ItalicLine : boolean; FReportData : TReportData; public CurrentItem : integer; SaleDateTime : TDateTime; SalespersonId : int64; procedure SetReportData (ReportData : TReportData); end; var ReceiptReport: TReceiptReport; implementation uses Globals, DatabaseManager; {$R *.DFM} procedure TReceiptReport.SetReportData (ReportData : TReportData); begin FReportData.Free; FReportData := ReportData; end; procedure TReceiptReport.QuickRepBeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); begin QuickReportOpen := true; ReportFooterQRLabel.Caption := ReportFooterString; CurrentItem := 0; PageNumber := 0; CompanyNameQRLabel.Caption := GlobalConfiguration.CompanyName; if Trunc(SaleDateTime) <> Date then DateQRLabel.Caption := 'Printed on :- ' + FormatDate(Date) else DateQRLabel.Caption := ''; if SalespersonName(SalespersonId) <> '' then SalespersonQRLabel.Caption := 'Salesperson :- ' + SalespersonName(SalespersonId) else SalespersonQRLabel.Caption := ''; SaleDateQRLabel.Caption := 'Date :- ' + FormatDate(Trunc(SaleDateTime)); SaleTimeQRLabel.Caption := 'Time :- ' + FormatTime(SaleDateTime); end; procedure TReceiptReport.QuickRepNeedData(Sender: TObject; var MoreData: Boolean); begin if (FReportData <> nil) and (CurrentItem < FReportData.LineCount) then MoreData := true else begin MoreData := false; Exit; end; LineQRLabel.Caption := FReportData.Line(CurrentItem); BoldLine := FReportData.LineBold(CurrentItem) or FReportData.LineBoldItalic(CurrentItem); ItalicLine := FReportData.LineItalic(CurrentItem) or FReportData.LineBoldItalic(CurrentItem); Inc(CurrentItem); end; procedure TReceiptReport.QuickRepStartPage(Sender: TCustomQuickRep); begin Inc(PageNumber); PageNumberQRLabel.Caption := 'Page ' + IntToStr(PageNumber); end; procedure TReceiptReport.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin if BoldLine then LineQRLabel.Font.Style := LineQRLabel.Font.Style + [fsBold] else LineQRLabel.Font.Style := LineQRLabel.Font.Style - [fsBold]; if ItalicLine then LineQRLabel.Font.Style := LineQRLabel.Font.Style + [fsItalic] else LineQRLabel.Font.Style := LineQRLabel.Font.Style - [fsItalic]; end; procedure TReceiptReport.QuickRepAfterPreview(Sender: TObject); begin QuickReportOpen := false; end; procedure TReceiptReport.QuickRepAfterPrint(Sender: TObject); begin QuickReportOpen := false; end; end.