如何在报表设计器中设定细节带区打印的记录个数?
以下时网络上找到的,但是试验运行到横线处时都出错了?
方法一:
在报表数据环境的destroy事件中加入代码:
=tablerevert(.f.)
在报表数据环境的ini事件中加入如下代码:
if vartype(tobePrint) = \"U\" Public tobePrint tobePrint = 20&&每页要打印的行数为20 endifdo while reccount(\"表名\") % tobePrint <> 0 append blank &&不足20行,添加空记录 enddo
下面这段代码为打印报表
RELEASE tobeprint PUBLIC tobeprint tobeprint = 20 &&设置每页打印20条记录 REPORT FORM 报表名 to print
方法二:怎么定义那两个报表变量?代码还能完善吗?
在该方法中,定义了一个全局变量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