请问QuickReport如何打印空行 打印的时候如果记录数不满一页,剩下的就以空行填充,我用的是主从数据集,特别是在打印多条数据的时候,每页的记录数都不确定,请问如何实现,在线等,先谢谢各位了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 OnNeedData里设置 MoreData := true,则将继续打印。打印新页时,每打印一行,打印的行计数器+1,如果没满一页所占用的记录数,则 MoreData 设置成true,直到打满一页。 lynmison 我在OnNeedData写的代码为什么不触发?请你再说得详细点,谢谢 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin, DB, QuickRpt, QRCtrls, ADODB, ExtCtrls;type TForm1 = class(TForm) QuickRep1: TQuickRep; adsEmployee: TADODataSet; TitleBand1: TQRBand; ColumnHeaderBand1: TQRBand; DetailBand1: TQRBand; QRLabel1: TQRLabel; QRLabel2: TQRLabel; adsEmployeeEmployeeID: TAutoIncField; adsEmployeeLastName: TWideStringField; adsEmployeeFirstName: TWideStringField; adsEmployeeTitle: TWideStringField; adsEmployeeTitleOfCourtesy: TWideStringField; adsEmployeeBirthDate: TDateTimeField; adsEmployeeHireDate: TDateTimeField; adsEmployeeAddress: TWideStringField; adsEmployeeCity: TWideStringField; adsEmployeeRegion: TWideStringField; adsEmployeePostalCode: TWideStringField; adsEmployeeCountry: TWideStringField; adsEmployeeHomePhone: TWideStringField; adsEmployeeExtension: TWideStringField; adsEmployeePhoto: TBlobField; adsEmployeeNotes: TMemoField; adsEmployeeReportsTo: TIntegerField; adsEmployeePhotoPath: TWideStringField; QRLabel3: TQRLabel; QRLabel4: TQRLabel; lblId: TQRLabel; lblLastName: TQRLabel; lblFirstName: TQRLabel; btnPreview: TButton; sePageRow: TSpinEdit; QRLabel5: TQRLabel; lblIndex: TQRLabel; procedure btnPreviewClick(Sender: TObject); procedure QuickRep1StartPage(Sender: TCustomQuickRep); procedure QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}var rowIndex: integer;procedure TForm1.btnPreviewClick(Sender: TObject);begin adsEmployee.First; QuickRep1.Preview;end;procedure TForm1.QuickRep1StartPage(Sender: TCustomQuickRep);begin rowIndex := 0;end;procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);begin if not adsEmployee.Eof then begin Inc(rowIndex); lblId.Caption := adsEmployee.FieldByName('EmployeeID').AsString; lblLastName.Caption := adsEmployee.FieldByName('LastName').AsString; lblFirstName.Caption := adsEmployee.FieldByName('FirstName').AsString; lblIndex.Caption := IntToStr(rowIndex); adsEmployee.Next; MoreData := true; end else begin if (rowIndex=0) or (rowIndex=sePageRow.Value) then begin MoreData := false; end else begin Inc(rowIndex); lblId.Caption := ''; lblLastName.Caption := ''; lblFirstName.Caption := ''; lblIndex.Caption := IntToStr(rowIndex); MoreData := true; end; end; if rowIndex>=sePageRow.Value then QuickRep1.NewPage;end;end. bdgrid中如何修改指定行列的值 inno setup5.2.3 跳过指定页面的问题 成都招Delphi.(2K-3K+) 关于com+组件的调用问题!急求帮助!! 怎样获得正在播放的音频文件的输出波形。 在Internet上,怎么与其它计算机进行通讯,使用什么方法比较好,UP有分??? 怎么样学习DELPHI 我给出了我所有的可用分,请大家帮忙看看。急 我想問一下我在Win2000下為何BDE中沒有MSSQL的數據驅動程序(就是直接用BDE連MSSQL) 求教,TQuery的问题!(急) 谁能帮我把这段代码注释一下? 利用TTable存储数据的问题?
我在OnNeedData写的代码为什么不触发?
请你再说得详细点,谢谢
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, DB, QuickRpt, QRCtrls, ADODB, ExtCtrls;type
TForm1 = class(TForm)
QuickRep1: TQuickRep;
adsEmployee: TADODataSet;
TitleBand1: TQRBand;
ColumnHeaderBand1: TQRBand;
DetailBand1: TQRBand;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
adsEmployeeEmployeeID: TAutoIncField;
adsEmployeeLastName: TWideStringField;
adsEmployeeFirstName: TWideStringField;
adsEmployeeTitle: TWideStringField;
adsEmployeeTitleOfCourtesy: TWideStringField;
adsEmployeeBirthDate: TDateTimeField;
adsEmployeeHireDate: TDateTimeField;
adsEmployeeAddress: TWideStringField;
adsEmployeeCity: TWideStringField;
adsEmployeeRegion: TWideStringField;
adsEmployeePostalCode: TWideStringField;
adsEmployeeCountry: TWideStringField;
adsEmployeeHomePhone: TWideStringField;
adsEmployeeExtension: TWideStringField;
adsEmployeePhoto: TBlobField;
adsEmployeeNotes: TMemoField;
adsEmployeeReportsTo: TIntegerField;
adsEmployeePhotoPath: TWideStringField;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
lblId: TQRLabel;
lblLastName: TQRLabel;
lblFirstName: TQRLabel;
btnPreview: TButton;
sePageRow: TSpinEdit;
QRLabel5: TQRLabel;
lblIndex: TQRLabel;
procedure btnPreviewClick(Sender: TObject);
procedure QuickRep1StartPage(Sender: TCustomQuickRep);
procedure QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}var
rowIndex: integer;procedure TForm1.btnPreviewClick(Sender: TObject);
begin
adsEmployee.First;
QuickRep1.Preview;
end;procedure TForm1.QuickRep1StartPage(Sender: TCustomQuickRep);
begin
rowIndex := 0;
end;procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
if not adsEmployee.Eof then
begin
Inc(rowIndex);
lblId.Caption := adsEmployee.FieldByName('EmployeeID').AsString;
lblLastName.Caption := adsEmployee.FieldByName('LastName').AsString;
lblFirstName.Caption := adsEmployee.FieldByName('FirstName').AsString;
lblIndex.Caption := IntToStr(rowIndex);
adsEmployee.Next;
MoreData := true;
end
else begin
if (rowIndex=0) or (rowIndex=sePageRow.Value) then
begin
MoreData := false;
end
else begin
Inc(rowIndex);
lblId.Caption := '';
lblLastName.Caption := '';
lblFirstName.Caption := '';
lblIndex.Caption := IntToStr(rowIndex);
MoreData := true;
end;
end;
if rowIndex>=sePageRow.Value then QuickRep1.NewPage;
end;end.