看似小问题的大问题:小晶报表两种页码显示

时间:2023-01-30 18:50:41
报表以制令号作为排序且分组,并且新组重计页码,在以上页码不变的情况下,客户要求再以不重计页的情况显示页码,
即有两种页码同时显示,此功能可否实现?

11 个解决方案

#1


不大明白 :(

#2


表述能力有限
在同一页中同时用两种页码显示
第一种是以分组重计页码的方式显示,第二种是不以分组重计页码的方法显示,举例说明如下
第一种方式:1/2,2/2  1/3,2/3,3/3
第二种方式:1/5,2/5  3/5,4/5,5/5

#3


那如果第二组的数据在某一页中间紧跟在第一组数据的后面,这种情况以分组重计页码的方式该如何显示呢?

#4


这个问题很简单  
你拖上页数字段 右击  ----设置对象格式----在显示字符串处写函数---
if {页数标志(你可以自己定义)} <> "0" then {页数显示}
else 
//默认系统页数
ToText(TotalPageCount,0)

或者程序动态获取水晶报表页数 绑定给水晶报表
 CrystalDecisions.Shared.ReportPageRequestContext rprc = new CrystalDecisions.Shared.ReportPageRequestContext();
                    int totalPCount = reportDoc.FormatEngine.GetLastPageNumber(rprc);

#5


我的页数是动态的 客户要多少是多少 然后再后面附word文件  
和你需求差不多 你多试试

#6


回luols:
  第二组的数据不会在某一页中紧跟第一组,因为设置为以组分页


回qxzwhj:
  你的方法可以试试,但不知能否成功

先谢谢两位朋友.

#7


现在的问题集中在 第一种以分组重计页码的方式,每个组的总页数不容易得到

#8


该回复于2011-02-27 09:32:32被版主删除

#9


就如楼上朋友所说的一样,如何得到?

#10


我想到了一个办法,
办法如下,创建一个 公式 里面“声明并定义”两个 shared numbervar 总页数,总页号。赋初始值,
把这个公式放在 report header 上,

另写一个公式放在 page header 上,里面也“声明但不是定义”这个 shared number 总页号,并修改它的值为当前页号,

我们的做法是 detail 隐藏,把 group header 上只放一个子报表,这个子报表是按当前组的条件显示这组的数据,在子报表里面用 N of M 显示组内页号,子报表还定义一个公式放在 page header 上,它“声明但不是定义” shared numbervar 总页数,总页号,然后返回值为 totext(总页号 + pageNumber -1,"##0" ) + "/" + toText(总页数,'###0'); 那子报表里面这个公式的页号就是总页号。

按这个测试是可行的,我在测试时发现第1页总是为空白,但我在除 group head/footer 和 page footer 之外的其它 section 都 Suppress 公式 pageNumber = 1,让它在第一页时隐藏的话,第一个空白页就没显示出来,因为计算“滚到”group header 时我不让它隐藏,所以页码还是 1,就正常了。再注意一下最后一页也调节一下就正常了。预览时一定要从第一页开始看,因为 report header 上有初始化公式。

#11


查原创图。
http://hi.csdn.net/attachment/201103/18/670114_1300470348EtZr.png

#1


不大明白 :(

#2


表述能力有限
在同一页中同时用两种页码显示
第一种是以分组重计页码的方式显示,第二种是不以分组重计页码的方法显示,举例说明如下
第一种方式:1/2,2/2  1/3,2/3,3/3
第二种方式:1/5,2/5  3/5,4/5,5/5

#3


那如果第二组的数据在某一页中间紧跟在第一组数据的后面,这种情况以分组重计页码的方式该如何显示呢?

#4


这个问题很简单  
你拖上页数字段 右击  ----设置对象格式----在显示字符串处写函数---
if {页数标志(你可以自己定义)} <> "0" then {页数显示}
else 
//默认系统页数
ToText(TotalPageCount,0)

或者程序动态获取水晶报表页数 绑定给水晶报表
 CrystalDecisions.Shared.ReportPageRequestContext rprc = new CrystalDecisions.Shared.ReportPageRequestContext();
                    int totalPCount = reportDoc.FormatEngine.GetLastPageNumber(rprc);

#5


我的页数是动态的 客户要多少是多少 然后再后面附word文件  
和你需求差不多 你多试试

#6


回luols:
  第二组的数据不会在某一页中紧跟第一组,因为设置为以组分页


回qxzwhj:
  你的方法可以试试,但不知能否成功

先谢谢两位朋友.

#7


现在的问题集中在 第一种以分组重计页码的方式,每个组的总页数不容易得到

#8


该回复于2011-02-27 09:32:32被版主删除

#9


就如楼上朋友所说的一样,如何得到?

#10


我想到了一个办法,
办法如下,创建一个 公式 里面“声明并定义”两个 shared numbervar 总页数,总页号。赋初始值,
把这个公式放在 report header 上,

另写一个公式放在 page header 上,里面也“声明但不是定义”这个 shared number 总页号,并修改它的值为当前页号,

我们的做法是 detail 隐藏,把 group header 上只放一个子报表,这个子报表是按当前组的条件显示这组的数据,在子报表里面用 N of M 显示组内页号,子报表还定义一个公式放在 page header 上,它“声明但不是定义” shared numbervar 总页数,总页号,然后返回值为 totext(总页号 + pageNumber -1,"##0" ) + "/" + toText(总页数,'###0'); 那子报表里面这个公式的页号就是总页号。

按这个测试是可行的,我在测试时发现第1页总是为空白,但我在除 group head/footer 和 page footer 之外的其它 section 都 Suppress 公式 pageNumber = 1,让它在第一页时隐藏的话,第一个空白页就没显示出来,因为计算“滚到”group header 时我不让它隐藏,所以页码还是 1,就正常了。再注意一下最后一页也调节一下就正常了。预览时一定要从第一页开始看,因为 report header 上有初始化公式。

#11


查原创图。
http://hi.csdn.net/attachment/201103/18/670114_1300470348EtZr.png