|
→ 在VFP报表中实现每页打印指定记录数二
|
|
|
www.kepusoft.com 信息之舟电脑软件应用栏目
|
|
|
信息之舟电脑软件应用栏目编者按:
方法三
在该方法中,定义了一个全局变量tobePrint,该变量的值就是每页要打印的记录数,如果没有定义该变量,则使用默认的每页打印 15 条记录。
1、temp.dbf添加到报表数据环境中。
2、将temp.dbf的数据环境中的 BufferModeOverride 属性设置为 5。
3、在数据环境属性Destroy 事件中写:
=tablerevert(.t.)
4、在数据环境属性Init 事件中写:
if vartype(tobePrint) = "U" &&&& 如果全局变量还没有定义,在这里定义它的默认值为15
Public tobePrint
tobePrint = 15
endif
*-- 以下代码是为了当要打印的记录数不满一页时,打印空行来填满整个报表页
do while reccount("temp") % tobePrint <> 0
append blank
enddo
5、 在报表中新建两个报表变量如:nCount、nGroup,变量nCount的计算选项组中选择计数,在变量 nGroup 的要存储的值中写:
iif(nCount<>0 and nCount % tobePrint=0,nGroup+1,nGroup)
6、 在报表中增加一个分组并设置分组表达式为nGroup,并选择每组从新的一页上开始复选框。
7、 用以下代码来运行报表:
use temp
*-- 为避免重复定义变量错误,在定义全局变量前首先释放它
release tobeprint
*-- 定义全局变量,该变量中保存了每页要打印的记录数
public tobeprint
*-- 设置每页打印10条记录
tobeprint = 10
*-- 打印我们的报表
report form temp preview
方法二与方法三的异同
二者都是采用了数据分组的方法来实现“每页打印指定记录数”,向表中添加空记录来实现“表中的记录数不是整页数时在最后一页中以空的表格填满报表”。
二者不同之处在于:方法二是利用临时表来解决问题,数据的分组信息写在临时表中,方法三是利用报表变量来解决分组问题,数据分组是用报表变量来实现的。  |
|
www.kepusoft.com
信息之舟电脑之家收集整理推荐文章
|
|
|
|
|
|
|