FastReport(3)
******使用脚本,脚本中使用变量
很多时候,我们希望把对报表的控制放到报表的脚本中,通常我这样做有二个原因:
1)能够根据字段内容的变化而使用不同的设置,因为如果想在程序中实现这样功能,就不得不用自定义函数,函数的实现要放到程序中,函数可能需要传递很多参数,效率低下。
2)把不同报表的控制放到脚本中,可以实现报表的模块化,程序只是简单的设置数据集的关系,并加载硬盘上的报表文件,不同报表的不同实现方式,显示方式,均放到报表文件中,程序简洁,易维护,易升级。
当然,这样的缺点就是程序中加载报表时的数据集别名必须与设计报表时的别名一致。
脚本的使用与通常程序的使用并没有太多的区别,就是像正常的程序那样引用控件的名称即可。
但注意对变量的使用,需要把变量名或表达式用<>括起来。
实现打印分组的页数。基本的原理就是:
1)必须使用二遍报表,因为FS算总页数就是需要二遍报表的。
2)在第一遍报表中,在GroupBand打印前,动态的建立整数型数组变量,用以保存上一个分组的总页数。
3)在最后一遍报表时,需要显示分组页数的Tfrxmemoview取得数组中的数据,但最后一个分组不会有总数,可以通过总页数减去GroupBand事件中保存的页数来取得。
4)代码中处理了一页多组,及一组多页打印分组头的情况。可以看到这些特殊处理的代码说明。
5)我特意在分组尾及页脚都用了Tfrxmemoview来显示这些数据,说明在不同情况下的显示。
把附件编译一下运行就可以,里面包含fr3文件及一个小示例数据库。
很多时候,我们希望把对报表的控制放到报表的脚本中,通常我这样做有二个原因:
1)能够根据字段内容的变化而使用不同的设置,因为如果想在程序中实现这样功能,就不得不用自定义函数,函数的实现要放到程序中,函数可能需要传递很多参数,效率低下。
2)把不同报表的控制放到脚本中,可以实现报表的模块化,程序只是简单的设置数据集的关系,并加载硬盘上的报表文件,不同报表的不同实现方式,显示方式,均放到报表文件中,程序简洁,易维护,易升级。
当然,这样的缺点就是程序中加载报表时的数据集别名必须与设计报表时的别名一致。
脚本的使用与通常程序的使用并没有太多的区别,就是像正常的程序那样引用控件的名称即可。
但注意对变量的使用,需要把变量名或表达式用<>括起来。
实现打印分组的页数。基本的原理就是:
1)必须使用二遍报表,因为FS算总页数就是需要二遍报表的。
2)在第一遍报表中,在GroupBand打印前,动态的建立整数型数组变量,用以保存上一个分组的总页数。
3)在最后一遍报表时,需要显示分组页数的Tfrxmemoview取得数组中的数据,但最后一个分组不会有总数,可以通过总页数减去GroupBand事件中保存的页数来取得。
4)代码中处理了一页多组,及一组多页打印分组头的情况。可以看到这些特殊处理的代码说明。
5)我特意在分组尾及页脚都用了Tfrxmemoview来显示这些数据,说明在不同情况下的显示。
把附件编译一下运行就可以,里面包含fr3文件及一个小示例数据库。