在Delphi中,FASTReport4.8中,如何讓數據欄,不足一頁時自動填充空行。以前的版本有這一功能,可是在4.8中沒有這一功能了!我在網上找了一下,說是用腳本來做,可以按照上述的方法,打印時就關閉整個程序了!所以現在請教一下各位!多謝!

解决方案 »

  1.   

    主要band有
    report title
    page title
    MasterDate band
    child1 //用不隶属关系
    footer;//此footer要设为不可见的,不能有汇总项,
    汇总项用pagefooter 或reportsum 来做,pagefooter为每页小计,reportsum为报表合计。加一个子Band(名称为child1),在该子Band上画上一行与你的记录行左对齐的空格(memo为空)行;再加一个footer Band,onBeforePrint里写上: 
     while     Engine.FreeSpace> 指定高度   do 
                   Engine.ShowBand(Child1); 
      

  2.   

    FastReport分页+空行填充1.添加两个Band 一个是主数据和CHild(与主数据一样的空白带格子)。
    2.生成Page事件。
    3.添加代码。var                                
    aa:Integer; 
    maxRow:Integer;
      
             
    procedure Page1OnManualBuild(Sender: TfrxComponent);
    var 
      DataSet: TfrxDataSet; 
    begin                          
      DataSet := MasterData1.DataSet; 
      DataSet.First; 
      while (not DataSet.Eof) or ((aa-1) mod MaxRow<>0) do 
      begin 
        if DataSet.Eof then 
          Engine.ShowBand(Child1)
        else Engine.ShowBand(MasterData1); 
          DataSet.Next; 
       inc(aa); 
       if (((aa-1) mod (MaxRow)=0) and (not DataSet.Eof)) then EngIne.Newpage; 
      end; 
    end;begin                  
      aa:=1; 
      maxRow:=40; //每页最大行数                    
    end.