F
fantasy7777
Unregistered / Unconfirmed
GUEST, unregistred user!
使用FastReport3.0 輸出報表.
輸出記錄中包含多條記錄,在一張報表中一次只顯示2條記錄.如果記錄數爲奇數則在最後一張報表中用空行來補足.
以上功能我在FastReport中使用下面代碼來實現:
var
PageLine: integer; //在現在頁列印到第幾行
PageMaxRow: integer=2; //設定每頁列數
procedure DetailData1OnBeforePrint(Sender: TfrxComponent);
begin
PageLine := <Line> mod PageMaxRow;
if (PageLine =1) and (<line> > 1) then
begin
Engine.NewPage;
Engine.showBand(MasterData2); //將報表主體在下一頁顯示
end;
Child1.visible := False;
end;
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
var
i: integer;
begin
i := iif(PageLine=1, PageMaxRow, PageLine);
Child1.visible := True;
while i <= PageMaxRow do
begin
i := i + 1;
Engine.ShowBand(Child1); //印空白表格
end;
Child1.visible := False;
end;
如果記錄數爲2(我测試時衹有3條數據),則在第一張紙上打出二條記錄外加三个空行.而1條和3條記錄都沒有問題.
請問這樣實現有問題嗎?爲什麽我用2條數據测試就會出錯呢?
輸出記錄中包含多條記錄,在一張報表中一次只顯示2條記錄.如果記錄數爲奇數則在最後一張報表中用空行來補足.
以上功能我在FastReport中使用下面代碼來實現:
var
PageLine: integer; //在現在頁列印到第幾行
PageMaxRow: integer=2; //設定每頁列數
procedure DetailData1OnBeforePrint(Sender: TfrxComponent);
begin
PageLine := <Line> mod PageMaxRow;
if (PageLine =1) and (<line> > 1) then
begin
Engine.NewPage;
Engine.showBand(MasterData2); //將報表主體在下一頁顯示
end;
Child1.visible := False;
end;
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
var
i: integer;
begin
i := iif(PageLine=1, PageMaxRow, PageLine);
Child1.visible := True;
while i <= PageMaxRow do
begin
i := i + 1;
Engine.ShowBand(Child1); //印空白表格
end;
Child1.visible := False;
end;
如果記錄數爲2(我测試時衹有3條數據),則在第一張紙上打出二條記錄外加三个空行.而1條和3條記錄都沒有問題.
請問這樣實現有問題嗎?爲什麽我用2條數據测試就會出錯呢?