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


在設置單據的打印模板的時候,我們有時候會遇到這樣的情況:單據的內容很少,打印出來的效果不理想的情況,例如
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、保存
現在我們就可以得到以下的打印效果了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM