1. 程式人生 > >FastReport之實現打印固定行數,不足補打空白行的辦法

FastReport之實現打印固定行數,不足補打空白行的辦法

color blog oot 系統 port class nbsp child 在一起

在設置單據的打印模板的時候,我們有時候會遇到這樣的情況:單據的內容很少,打印出來的效果不理想的情況,例如
1、單據體與單尾之間有大量的空白;

2、單據體跟單尾連在一起,單尾後面的空白篇幅太大;

以上這兩種打印效果並不理想,我們期待的是,系統能自動填充空白行至滿頁。
實現步驟:
1、在打印模板上添加“子”對象child,並把單體的內容復制到該部分,並清空各個對象的值,出現一個空白行。
2、打開打印模板的代碼編輯窗口,添加以下兩個事件(可以直接把以下的代碼拷貝到代碼編輯器中,保存即可):
var
PageLine: integer; //在現在頁列印到第幾行
PageMaxRow: integer=20; //設定每頁列數
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
var
i: integer;
begin
i := iif(PageLine=0, PageMaxRow, PageLine);
while i < PageMaxRow do begin
i := i + 1;
Engine.ShowBand(Child1); //印空白表格
end;
end;
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
PageLine := <line> mod PageMaxRow;
if (PageLine = 1) and (<line> > 1) then
Engine.newpage;
end;
begin
end.
3、選擇打印模板的單體部分,切換到“事件”頁,並在OnAfterPrint 事件中選擇MasterData1OnBeforePrint
4、選擇打印模板的單尾部分,切換到“事件”頁,並在OnBeforePrint事件中選擇Footer1OnBeforePrint
5、保存
現在我們就可以得到以下的打印效果了!

FastReport之實現打印固定行數,不足補打空白行的辦法