fastreport分栏分组显示问题(急贴盼解决)(100)

  • 主题发起人 syonglan
  • 开始时间
S

syonglan

Unregistered / Unconfirmed
GUEST, unregistred user!
我要做的报表是一产品出库明细,按“缸号”分组显示并汇总,且分2栏显示,这些功能我均已实现,但问题是如果明细不够一张纸,总的汇总(不是每组的汇总哦)会紧跟在明细后面,我想显示在最后一张纸的最底部(总的汇总是加在报表合计里的),有什么解决办法吗?谢谢各位。非常急!!!
 
onbeforprint写脚本实现空行~~以下摘自网上Delphi FastReport 打印空行脚本模板 在设计时,我们原来执行如下打印前执行脚本:while freespace>75do
begin
ShowBand(aa);
end;
但是在使用的时候,比如客户想把页头调大点,则打印可能就出现了死循环,这个时候我们可能又需要重新计算freespace的值,为避免以上情况,查询相关资料后,试推算出以下脚本公式: if [FINALPASS] then
begin
num := int((FreeSpace [-其他项Band.Height,[-其他项Ban.Height..]..] )/子项Band.Height);
for i := 1 to numdo
begin
ShowBand(子项Band);
end;
end;
备注: 此脚本在使用的时候需要注意公式: FreeSpace [-其他项Band.Height,[-其他项Ban.Height..]..]) 其中 [其他项Band] 为 打印子项后的需要打印的不包括页脚的所有BAND。 例如:打印项目 页头:ph 主项数据 : band1 子:aa 栏目脚 : bb 页脚:cc 则栏目脚 打印前执行 脚本为: if [FINALPASS] then
begin
num := int((FreeSpace - bb.Height)/aa.Height);
for i := 1 to numdo
begin
ShowBand(aa);
end;
end;
 
不行啊,我没有子band,只有主项,分组首尾等数据
 
为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后。 还是不行,空行不显示。
 
其他都弄出来了,还有一个难题: 假如分3栏显示,只有前2栏有数据,则第三栏应该显示空的,怎么弄呢?
 
自己已搞定!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
892
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部