FastReport的总页码值如何获取?(本帐号所有分全送)

chinmusam 2009-10-22 06:13:43
问题:目的是将报表的总页码数在ShowReport与print后传到窗体的变量中。我要的是你真正能实现的具体方法或代码。
前提要求描述:
 1.FastReport的版本:3.18
2.报表的类是frxReport而不是frReport(请注意本点)
 3.要打印或显示的报表是在动态加载内容,即从某文件中加载的是使用LoadFromFile方法。
4.报表上使用了报表头分组,即有GroupHeader。这意味着报表的内容最后将会分组显示内容。

补充杂语: 
1.我初步的思路:
<1>.利用报表的PageFooter在OnAfterPrint事件中累积某个整型变量和即是想要得到的总页码值。
  实现步骤:首先在报表中创建了变量SysPage(但不知如何给它赋值。因为刚接触FastReport.)
其次,在程序代码中将报表上的SysPage传过来即可。
(传报表上的全局变量SysPage使用语句:
        vPage:= frxReport1.Variables['SysPage']。//vPage是程序代码int变量)
<2>.但在报表的OnAfterPrint中不知如何写语句了累加全局变量SysPage的值
     (我偿试过这样写:SysPage :=SysPage+1;//提示语法不对)
  2.程序中就只需要返回报表的总页数即可,用frxReport.pagecount是无效的(不知开发此软件的人怎么设计的)。
3.搞这个页码数已经12个小时了,不甚烦恼,请知情者贴代码告知方法,不甚感激。
  4.网站上没有一个公布此问题的答案的,虽然有人提过相同的问题(最后他自己解决了但未公布答案)。
5.方法可行,立马散分。 
...全文
1158 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinmusam 2009-10-23
  • 打赏
  • 举报
回复
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。

为一年来第一次在CSDN上得到一个答案而干杯!
为知识干杯!
....散分.............................................................
chinmusam 2009-10-23
  • 打赏
  • 举报
回复
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。

为一年来第一次在CSDN上得到一个答案而干杯!
....散分.............................................................
火龙岛主 2009-10-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 kaikai_kk 的回复:]
在设计报表选项里有一项为两遍报表的,打上勾;
好像是Report-Options-Double pass


在frxReport的onEndDoc事件可以取得报表的总页数
Showmessage(IntTostr(frxReport.Engine.TotalPages))
[/Quote]
FastReport中,必须勾选两遍报表后,frxReport.Engine.TotalPages变量才有效。
chinmusam 2009-10-23
  • 打赏
  • 举报
回复
回复:kaikai_kk
不行啊,Showmessage(IntTostr(frxReport.Engine.TotalPages))的结果是0,
iamduo 2009-10-22
  • 打赏
  • 举报
回复
呵呵,demo里应该有的吧。这个分数浪费了。
kaikai_kk 2009-10-22
  • 打赏
  • 举报
回复
在设计报表选项里有一项为两遍报表的,打上勾;
好像是Report-Options-Double pass


在frxReport的onEndDoc事件可以取得报表的总页数
Showmessage(IntTostr(frxReport.Engine.TotalPages))
chinmusam 2009-10-22
  • 打赏
  • 举报
回复
分数若不够,告知一下,加分或另开帐号开贴送分!谢谢各位!!!

5,916

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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