Birt 分页
[birt2.6]关于报表分页的script
1、选中table的details,选择script标签页,打开birt的脚本编辑窗口;
2、从下拉列表中选择onPrepare,在下面加入Javascript脚本如下:
var count = 0;
3、从下拉列表中选择OnCreate,在下面加入Javascript脚本如下:
count++;
if(count % 10 == 0){
style.pageBreakAfter = "always";
}
这样就会报错,说找不到count,不是已经定义了count的么,我把count定义到script的initialize中就可以了
为什么会这样呢,网上很多例子的初始化都是在onPrepare中,我的都不行呢?
请高人回答啊,先谢谢了!
脚本的东西平时用的很少,就拼sql时候用用. 您可以去脚本区问问高人
这里有一些相关的说明文档希望对您有帮助:
=============================================================
报表生成阶段的事件:
1、 报表级事件:
initialize 在报表开始执行生成阶段前执行。包含定义全局变量、函数、和对象。
beforeFactory :在开始生成阶段之前执行。可以访问报表中的元素。如数据集、标签等等。
afterFactory:在开始生成阶段阶段之前执行
2、 数据源事件:
beforeOpen:在BIRT打开数据源连接之前执行,一般进行连接数据源的配置信息的编写,包括:驱动、数据库的URL、用户名、密码等等。
AfterOpen :在BIRT打开数据源连接之后执行
BeforeCLose::在BIRT关闭数据源连接之前执行
afierClose: 在BIRT关闭数据源连接之后执行
3、 数据集事件:
beforeOpen:在BIRT打开数据集之前执行,一般编写要执行的SQL语句。
AfterOpen :在BIRT打开数据集之后执行
Onfetch:获取每一行的数据以后,并应用过滤器计算列之前执行onFetch事件处理程序。
BeforeCLose::在BIRT关闭数据源连接之前执行
afierClose: 在BIRT关闭数据源连接之后执行
4、报表元素事件:
onPrepare:在报表生成阶段调用,并且针对报表设计中的每一个元素,在此事件中就可以修改元素的设计。
onCreate:在此事件中可以修改和访问元素的实例。
报表显示阶段事件:
1、报表级事件:
initialize : 在报表开始执行显示阶段前执行。在初始化事件中可以定义全局变量、函数、和对象。
beforeRender:在开始显示阶段前执行。
afterRender:在开始显示阶段后执行。
2、报表元素事件:
onRender:可以改变元素实例。
你如果把一张报表当做一个html文档你就会明白的。onprepare,是先执行的js方法,但是里面定义的局部变量,var count,你在后面的方法oncreate里,是访问不到的。但是想像一下,initialize,可能就不是一个方法,里面的代码直接放在脚本最前面执行,所以定义var count,也是一个全局变量,在后面的方法里就可以访问到了。另外,和js一样,你如果定义count,不加var,也就表示他是个全局变量,那么你在onprepare里定义,在oncreate里照样可以访问到的。
说这么多,你明白了没?
1、选中table的details,选择script标签页,打开birt的脚本编辑窗口;
2、从下拉列表中选择onPrepare,在下面加入Javascript脚本如下:
var count = 0;
3、从下拉列表中选择OnCreate,在下面加入Javascript脚本如下:
count++;
if(count % 10 == 0){
style.pageBreakAfter = "always";
}
这样就会报错,说找不到count,不是已经定义了count的么,我把count定义到script的initialize中就可以了
为什么会这样呢,网上很多例子的初始化都是在onPrepare中,我的都不行呢?
请高人回答啊,先谢谢了!
脚本的东西平时用的很少,就拼sql时候用用. 您可以去脚本区问问高人
这里有一些相关的说明文档希望对您有帮助:
=============================================================
报表生成阶段的事件:
1、 报表级事件:
initialize 在报表开始执行生成阶段前执行。包含定义全局变量、函数、和对象。
beforeFactory :在开始生成阶段之前执行。可以访问报表中的元素。如数据集、标签等等。
afterFactory:在开始生成阶段阶段之前执行
2、 数据源事件:
beforeOpen:在BIRT打开数据源连接之前执行,一般进行连接数据源的配置信息的编写,包括:驱动、数据库的URL、用户名、密码等等。
AfterOpen :在BIRT打开数据源连接之后执行
BeforeCLose::在BIRT关闭数据源连接之前执行
afierClose: 在BIRT关闭数据源连接之后执行
3、 数据集事件:
beforeOpen:在BIRT打开数据集之前执行,一般编写要执行的SQL语句。
AfterOpen :在BIRT打开数据集之后执行
Onfetch:获取每一行的数据以后,并应用过滤器计算列之前执行onFetch事件处理程序。
BeforeCLose::在BIRT关闭数据源连接之前执行
afierClose: 在BIRT关闭数据源连接之后执行
4、报表元素事件:
onPrepare:在报表生成阶段调用,并且针对报表设计中的每一个元素,在此事件中就可以修改元素的设计。
onCreate:在此事件中可以修改和访问元素的实例。
报表显示阶段事件:
1、报表级事件:
initialize : 在报表开始执行显示阶段前执行。在初始化事件中可以定义全局变量、函数、和对象。
beforeRender:在开始显示阶段前执行。
afterRender:在开始显示阶段后执行。
2、报表元素事件:
onRender:可以改变元素实例。
你如果把一张报表当做一个html文档你就会明白的。onprepare,是先执行的js方法,但是里面定义的局部变量,var count,你在后面的方法oncreate里,是访问不到的。但是想像一下,initialize,可能就不是一个方法,里面的代码直接放在脚本最前面执行,所以定义var count,也是一个全局变量,在后面的方法里就可以访问到了。另外,和js一样,你如果定义count,不加var,也就表示他是个全局变量,那么你在onprepare里定义,在oncreate里照样可以访问到的。
说这么多,你明白了没?