如何在水晶报表主报表中显示主报表加子报表的页码

cloudotidas 2011-08-25 10:44:14
作为一名在公司的实习生,我第一个接手的任务就是水晶报表,主要是layout方面的设计,后台代码是别人写的。
问题基本上是这样的。(我尽量叙述详细点)现在从后台传入两个dataset作为主、子报表的数据源,子报表放在reportfooter区域打印,并且主、子报表中的数据都是按不同的group分页的。现在要在主报表上显示页码,并且页码是按照一个名为“委托者number”的字段分类的,当这个字段变更,则页码重置为“1”。我写了这样如下的公式来解决这个问题:(公式放在pageheader中显示)
WhilePrintingRecords;
Stringvar s1 := "委托者number";
If not PreviousIsNull(委托者number) then
Stringvar s2 := Previous(委托者number)
else
Stringvar s2 :=" ";
If s1 <> s2 then
Numbervar pageNum := 1;
else if (totalPageCount >= pageNumber) then
pageNum := pageNum + 1;

子报表会在最后一个“委托者number”下面打印。但问题是:pageNumber是在增加,totalPageCount >= pageNumber的条件仍然成立,但是子报表分页之后该公式就不再执行了,比如开始打印子报表的那页pageNum是“1”,接下来不管有多少分页,pageNum一直为一。百思不得其解,求各位高手指点!如有没说清楚的地方请说明,我会及时补充说明。
...全文
96 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cloudotidas 2011-08-28
[Quote=引用 1 楼 babyt 的回复:]
标记下先。晚些具体看看。
[/Quote]
期待阿泰的回答,这让我头疼好久了
回复
cloudotidas 2011-08-28
[Quote=引用 2 楼 ajaxtop 的回复:]
Stringvar s1 := "委托者number";
If not PreviousIsNull(委托者number) then
Stringvar s2 := Previous(委托者number)


看来看去也没看懂
不过觉得你这里肯定有问题

让If s1 <> s2 then
Numbervar pageNum := 1;
这个一直执行,导致一直为1
[/Quote]要控制当“委托者number”发生变化的时候将页码重置为1啊
回复
ajaxtop 2011-08-26
Stringvar s1 := "委托者number";
If not PreviousIsNull(委托者number) then
Stringvar s2 := Previous(委托者number)


看来看去也没看懂
不过觉得你这里肯定有问题

让If s1 <> s2 then
Numbervar pageNum := 1;
这个一直执行,导致一直为1
回复
阿泰 2011-08-26
标记下先。晚些具体看看。
回复
相关推荐
发帖
图表区
创建于2007-09-28

4810

社区成员

.NET技术 图表区
申请成为版主
帖子事件
创建了帖子
2011-08-25 10:44
社区公告
暂无公告