begin if LINE#-1 <>0 and LINE#-1 mod 5=0 then begin showBandChild1 showBandband1 end end 代碼中用FastReport的內置函數LINE#取得當前行號,假如滿足條件,就顯示頁頭和Child3,開始新的一張表單。
3.選中Child3,在它的OnBeforPrint事件中輸入如下代碼:
begin lin=lineCount //在程序中要對該變量賦值 while lin mod 5<>0 do begin showbandchild2 //打印空行 inclin end showBandchild3 end 這段代碼的用途是假如最后數據行不夠一張表單顯示時,就打印空行。
4. 選中Band3,在它的OnBeforPrint事件中輸入如下代碼:
begin showbandchild1 //到達報表結束時顯示表單底部的內容 end 5.將報表保存后回到Delphi開發環境。 Delphi編程部分
private line1line2integer //保存行號 inputXjintemp //入庫小計 ,每5行后清零,下同 outXjoutemp //出庫小計 CajiaXjcatempReal //差價小計 下面是幾個主要過程的代碼清單。 //單張表單數據合并過程 procedure TInputForm.frDBDataSet1NextSender TObject var ReCountinteger begin ReCount = Adoruku.RecordCount Incline1 // 該變量傳至報表文件控制打印空行 Incline2 // 該變量控制清零小計值 if not Adoruku.Eof then begin inputXj=inputXj+ADORuku.fieldByName'入庫金額' .AsFloat outXj=outXj+Adoruku.fieldByName'出庫金額' .AsFloat CajiaXj=CajiaXj+AdorukuJXCJ.AsFloat end //每5行后將小計值清零 if line2 mod 5 = 0 and ReCount>line2 div 5 5 then begin intemp=inputXj outemp=outXj Catemp=CajiaXj inputXj=0 outXj=0 CajiaXj=0
end //到達數據集末尾時給變量賦值 if Adoruku.Eof then begin intemp=inputXj outemp=outXj Catemp=CajiaXj end end 以上程序在windows 2000/XP+Delphi6.0中調試通過。至此,我們已經完成了藥品驗收單的設計工作,其他的類似報表設計可以參照以上過程。圖2是程序運行時生成的報表預覽效果。