birt表格分页并隔行变色

关于报表分页的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中,我的都不行呢?

------------------------------------------------------------------------------------------------------------------

报表生成阶段的事件:
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里照样可以访问到的。

其中隔行变色,OnCreate方法后,添加-----

if(count%2 !=0){
style.setBackgroundColor("#ccdae7");
}else{
style.setBackgroundColor("white");
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值