fastreport怎样填充纸上的空白

MudLib 2006-01-10 12:14:23
一页报表只打印了两条数据,我想把纸上剩余的空间 都用空数据(就是空白的表格)填充,该怎么做?
...全文
379 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsqwang884 2006-01-23
  • 打赏
  • 举报
回复


报表套打。。。。。。。。。。。。。
rainbow0326 2006-01-23
  • 打赏
  • 举报
回复
to FCU(彩色铅笔)
我也遇到了需要把空白填充成格子的问题,我的报表很简单,有一个masterdata,masterfooter,现在我在masterfooter上加入脚本 while Engine.FreeSpace > Child1.Height do
Engine.ShowBand(Child1) ;
但我的masterfooter是有内容的,所以需要显示,可是这样又有一个问题就是如果我一页刚好能显示7行就满了,那我本次查询恰好是7条数据的时候就发现我在第二页上面只显示masterfooter的内容,填重不了空白的地方为格子,这个要怎么解决呢?

jtcjr 2006-01-12
  • 打赏
  • 举报
回复
这需要使用PascalScript代码写的,下面代码是我以前做报表时用到的,你可以参考一下。
var
PageLine: integer; //在現在頁列印到第幾行
page1line:integer;
PageMaxRow: integer=36; //設定除第一页外每頁列數
page1maxrow:integer=15; //设定第一页列数

procedure Footer1OnBeforePrint(Sender: TfrxComponent);
var i:integer;
begin
i := PageLine;
if i = 0 then i := PageMaxRow;
while (i < PageMaxRow) do
begin
i:=i+1;
engine.ShowBand(Child1);
end;
end;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
Page1Line :=<line#> mod Page1MaxRow;
// if (PageLine = 1) and (<line#> > PageMaxRow) then Engine.newpage;
if (Page1Line = 0) then Page1Line := Page1MaxRow;
end;
FCU 2006-01-12
  • 打赏
  • 举报
回复
用fastreport打印时候,如果数据行数不够,打印出来的报表下面就空着,很难看!有的时候在数据源中处理,不是很方便,想问各位高手,能不能在报表本身来处理,比如设置什么属性,或者。。。。


如果是2.X版可以参照Demos\...print empty grid
3.x版如下:
为MaterData添加一个Footer,然后再添加一个Child。
如果Footer没用的话可将其Visible := false ,在其OnBeforePrint事件中写脚本
while Engine.FreeSpace > Child1.Height do
Engine.ShowBand(Child1) ;
将Child1设置成适当的高度,如果MasterData Band有边框的话,把表格COPY到CHIND1 BAND,清空其内容。那么在运行的时候如果报表内容后有空白则会继续打印空白的Child1。
如果你在MASTERDATA BAND后还有其它BANDS,可作适当调整并将其高度加在child1.height后。


-=--------------------
楼主按我写的做就是了,我用过
78hgdong 2006-01-12
  • 打赏
  • 举报
回复
好像可以用FR的变量来控制...在里面增加VALUE1,VALUE2等..
MudLib 2006-01-11
  • 打赏
  • 举报
回复
没人帮忙吗?
MudLib 2006-01-10
  • 打赏
  • 举报
回复
自己顶

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧