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里照样可以访问到的。 
说这么多,你明白了没?
posted @ 2012-04-10 11:21  戴墨镜的老猫  阅读(2618)  评论(0编辑  收藏  举报