fastreport 中显示记录数和分栏的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 bestwen
  • 开始时间 开始时间
B

bestwen

Unregistered / Unconfirmed
GUEST, unregistred user!
假设我要在报表中设定栏目数为2栏,每栏显示记录数为4
要怎么写代码,请高手指教

ID NAME ID NAME
1 a 5 b
2 c 6 d
3 e 7 f
4 g 8 h
若两列都超过4行就打印新的一页,我把MASTDATA的COLUMN设为两行
我用以下代码实现换页
var pageline:integer;
var pagemaxrow:integer=4;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
PageLine := <line> mod PageMaxRow;
if (PageLine = 1) and (<line> > 1) then
Engine.newpage;
end;

结果却是
第一页:
1 a
2 c
3 e
4 g
第二页
5 b
6 d
7 f
8 h
 
假设我要在报表中设定栏目数为2栏,每栏显示记录数为4
要怎么写代码,请高手指教

ID NAME ID NAME
1 a 5 b
2 c 6 d
3 e 7 f
4 g 8 h
若两列都超过4行就打印新的一页,我把MASTDATA的COLUMN设为两行
我用以下代码实现换页
var pageline:integer;
var pagemaxrow:integer=4;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
PageLine := <line> mod PageMaxRow;
if (PageLine = 1) and (<line> > 1) then
Engine.newpage;
end;

结果却是
第一页:
1 a
2 c
3 e
4 g
第二页
5 b
6 d
7 f
8 h
 
把4改在8就行了
 
若改成8打印的结果变成如下所示
1 a
2 c
3 e
4 g
5 b
6 d
7 f
8 h
并不是我要的结果
 
我并没有编程,我是利用调整行的宽度来实现的.
 
参考如下:
20. 每页固定行数
报表要求每页固定行数,最后一页不足要自动填空白行,每页在数据后就是本页合计和本期合计

1> 在FastReport里定义一个变量i
2> 在ReportBand的(OnBeforePrint)里初始化i
3> 在主数据band的(OnBeforePrint)里i:=i+1;
4> 然后添加分组头,分组条件为[INT([/20])]
不要用[LINETHROUGH#]代替i,也许是bug
5> 然后添加分组尾里(OnBeforePrint)
i:=[i MOD 20];
While (i<20) and (i>0)do

begin

ShowBand(Child1);
//Child1是一个子Band,里面放自动填充行或格子
i:=i+1;
End
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
624
import
I
I
回复
0
查看
832
import
I
I
回复
0
查看
642
import
I
后退
顶部