在demo中,打印字符串的单元代码如下:
unit unireport;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, QuickRpt, QRCtrls, ExtCtrls, DBTables, QRAbsDatas, qrprntr;type
TUnirep = class(TForm)
QuickRep1: TQuickRep;
QRLoopBand1: TQRLoopBand;
QRLabel1: TQRLabel;
TitleBand1: TQRBand;
QRLabel2: TQRLabel;
SetupDialog1: TPrinterSetupDialog;
procedure QRLoopBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;var
Unirep: TUnirep;
tmpl : TStringlist;
enc : TQRTextEncoding;
rec : integer;implementation
uses main, printers;{$R *.dfm}procedure TUnirep.QRLoopBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
qrlabel1.Caption := tmpl[rec];
inc(rec);
end;procedure TUnirep.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
enc := TQRTextEncoding.Create;
tmpl := TStringlist.Create;
tmpl.LoadFromFile(adir + '/Chinese-text.txt', enc.UTF8);
qrloopband1.PrintCount := tmpl.Count;
rec := 0;end;end.
主程序中的相应代码如下:unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, QRXMLSFilt, QRWebFilt, QRPDFFilt, QRExport;type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
QRExcelFilter1: TQRExcelFilter;
QRHTMLFilter1: TQRHTMLFilter;
QRCSVFilter1: TQRCSVFilter;
QRTextFilter1: TQRTextFilter;
QRXMLSFilter2: TQRXMLSFilter;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
biobutton: TSpeedButton;
SpeedButton2: TSpeedButton;
PD1: TPrintDialog;
SpeedButton5: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure biobuttonClick(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
adir : string;implementation
uses unireport, qrprntr, qrprev, printers, quickrpt;
{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
getdir( 0, adir );
end;
procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
unirep.QuickRep1.Preview;
end;end.
在整个程序中貌似没有对自定义过程:QRLoopBand1BeforePrint和QuickRep1BeforePrint的调用,那这两个过程是如何开始运行的呢???已经证明这个demo完全正常,两个过程确实运行了,且先运行QuickRep1BeforePrint后运行QRLoopBand1BeforePrint。有哪位大哥给解决一下呀,感激不尽!!!
unit unireport;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, QuickRpt, QRCtrls, ExtCtrls, DBTables, QRAbsDatas, qrprntr;type
TUnirep = class(TForm)
QuickRep1: TQuickRep;
QRLoopBand1: TQRLoopBand;
QRLabel1: TQRLabel;
TitleBand1: TQRBand;
QRLabel2: TQRLabel;
SetupDialog1: TPrinterSetupDialog;
procedure QRLoopBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;var
Unirep: TUnirep;
tmpl : TStringlist;
enc : TQRTextEncoding;
rec : integer;implementation
uses main, printers;{$R *.dfm}procedure TUnirep.QRLoopBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
qrlabel1.Caption := tmpl[rec];
inc(rec);
end;procedure TUnirep.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
enc := TQRTextEncoding.Create;
tmpl := TStringlist.Create;
tmpl.LoadFromFile(adir + '/Chinese-text.txt', enc.UTF8);
qrloopband1.PrintCount := tmpl.Count;
rec := 0;end;end.
主程序中的相应代码如下:unit main;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, QRXMLSFilt, QRWebFilt, QRPDFFilt, QRExport;type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
QRExcelFilter1: TQRExcelFilter;
QRHTMLFilter1: TQRHTMLFilter;
QRCSVFilter1: TQRCSVFilter;
QRTextFilter1: TQRTextFilter;
QRXMLSFilter2: TQRXMLSFilter;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
biobutton: TSpeedButton;
SpeedButton2: TSpeedButton;
PD1: TPrintDialog;
SpeedButton5: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure biobuttonClick(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
adir : string;implementation
uses unireport, qrprntr, qrprev, printers, quickrpt;
{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
getdir( 0, adir );
end;
procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
unirep.QuickRep1.Preview;
end;end.
在整个程序中貌似没有对自定义过程:QRLoopBand1BeforePrint和QuickRep1BeforePrint的调用,那这两个过程是如何开始运行的呢???已经证明这个demo完全正常,两个过程确实运行了,且先运行QuickRep1BeforePrint后运行QRLoopBand1BeforePrint。有哪位大哥给解决一下呀,感激不尽!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货