开源报表BIRT开发手册.doc
《开源报表BIRT开发手册.doc》由会员分享,可在线阅读,更多相关《开源报表BIRT开发手册.doc(42页珍藏版)》请在三一办公上搜索。
1、4 Birt报表script在使用 Eclipse 工作台开发 BIRT 报表时,您可以使用 Java 或 JavaScript 编写定制事件处理程序。在使用 Eclipse ECP(Eclipse CORBA Plugin (ECP)提供一个可针对CORBA IDL文件语法进行着色的编辑器)开发 BIRT 报表时,只能编写 JavaScript 事件处理程序。无论是使用 Java 还是 JavaScript,可以编写的事件处理程序集合是相同的。可以使用 Java 来编写一些事件处理程序并使用 JavaScript 来编写另一些事件处理程序。如果同一个事件同时有 Java 和 JavaScri
2、pt 事件处理程序,则 BIRT 将使用 JavaScript 处理程序。4.1 avascript脚本编写4.1.1 隔行高亮度显示1. 在布局(Layout)中,选择TableDetail的行。如下图:2. 然后选择Script,打开脚本窗口顶部的方法列表并选择onPrepare,如图所示。var count=0;3. 最后打开脚本窗口顶部的方法列表并选择 onCreate,如图所示:count+;if (count % 2 != 0) style.setBackgroundColor(silver);4. 保存,点击Preview预览结果如下图。4.1.2 多参数查询在多参数查询时,根据
3、输入的参数不同,查询出不同的结果集,这就需要对查询sql语言进行拼凑。在birt环境下这种拼凑可以在data set的script编辑框中完成。前端包含在标签中的查询参数提交上来后,通过paramsparameterName即可引用。1. 首先,按照3.3创建数据集的步骤创建数据集。Sql2. 创建报表参数,sql需要的条件参数。如下图:3. 点击Data Set(创建的数据集),然后点击编辑区的Script出现脚本编辑器。打开脚本窗口顶部的方法列表并选择brferOpern如下图:if(!paramsname.equals() | !paramscity.equals()this.query
4、Text = this.queryText+ where ;if(paramsname!=null & !paramsname.equals()this.queryText = this.queryText+ CUSTOMER_NAME like %+paramsname+%;if(!paramscity.equals()this.queryText = this.queryText+ and city =+paramscity+;说明:this.queryText获取之前创建的没有参数的sql语句。4. 保存,点击编辑区的Preview预览。会弹出输入参数的对话框。如下图:5. 点击ok,就
5、在预览窗口看到根据条件查询结果。如下图:4.1.3 脚本创建数据源通过脚本从properties配置文件取得jdbc数据源信息。1. 在已创建的jdbc数据源的基础编写脚本。2. 选择数据资源管理器(Data Explorer)Data Source(创建的数据源),如下图:3. 点击编辑区的Script脚本编辑器,打开脚本窗口顶部的方法列表并选择brferOpern如下图:importPackage( Packages.java.io );importPackage( Packages.java.util );fin = new java.io.FileInputStream( new St
6、ring(c:/temp/report.properties) );if(fin!=null)props = new java.util.Properties( );props.load(fin);extensionProperties.odaURL = new String(props.getProperty(dbURL);extensionProperties.odaDriverClass = new String(props.getProperty(driverName);extensionProperties.odaUser = new String(props.getProperty
7、(userName);extensionProperties.odaPassword = new String(props.getProperty(password);if(fin!=null)fin.close();由于在这里的代码只支持绝对路径,在服务器部署的情况下可能不太适用,可以修改一下支持相对路径,相对于你发布的应用/WEB-INF/目录。如下:importPackage( Packages.java.io,Packages.java.util,P );importPackage( Packages.javax.servlet.http );req = reportContext.g
8、etHttpServletRequest( );propPath = new String(paramspropFile);if ( propPath.charAt(0) != / ) propPath = /WEB-INF/ + propPath;url= req.getSession().getServletContext().getResource( propPath );props = new java.util.Properties( );props.load( url.openStream( ) );extensionProperties.odaURL = new String(p
9、rops.getProperty(dbURL);extensionProperties.odaDriverClass = new String(props.getProperty(driverName);extensionProperties.odaUser = new String(props.getProperty(userName);extensionProperties.odaPassword = new String(props.getProperty(password);4.2 java脚本编写由于不是简单地在 BIRT 报表设计器中直接输入 Java 代码,所以与创建 JavaS
10、cript 事件处理程序相比,Java 事件处理程序的创建工作略为复杂。要创建 Java 事件处理程序类,必须编译 Java 类的源代码并确保该类对 BIRT 可视。但是,由于 Eclipse 是健壮的 Java 开发环境并支持将 Java 项目与 BIRT 项目集成,所以,为 BIRT 创建 Java 事件处理程序的过程已大为简化。4.2.1 创建java类1. 创建java工程或者报表web工程。如果创建报表web工程,可以将报表创建在web目录下,方便测试。l 选择File-NewWeb Project,在窗口Configuretions下拉菜单选择BIRT Reporting Web
11、Project。如图:l 点击Finish,完成报表工程创建。如图:2. 编写java类在工程src目录下创建类。如图:l 创建Employee类,职工信息类。package test;public class Employee private String id = ;private String name=;private String sex=;private String address =;public void setId(String id)this.id = id;public String getId()return this.id;public void setName(S
12、tring name)this.name = name;public String getName()return this.name;public void setSex(String sex)this.sex = sex;public String getSex()return this.sex;public void setAddress(String address)this.address = address;public String getAddress()return this.address;l 创建DataFactory类,数据集合类。package test;import
13、 java.util.ArrayList;import java.util.List;public class DataFactory /* * 定制数据集合,这里也可以从数据库获取 * return */public static List getData()Employee emp1 = new Employee();emp1.setId(00501);emp1.setName(张三);emp1.setSex(男);emp1.setAddress(西安);Employee emp2 = new Employee();emp2.setId(00502);emp2.setName(李四);em
14、p2.setSex(男);emp2.setAddress(北京);Employee emp3 = new Employee();emp3.setId(00503);emp3.setName(王五);emp3.setSex(男);emp3.setAddress(深圳);List list = new ArrayList();list.add(emp1);list.add(emp2);list.add(emp3);return list;4.2.2 java类与报表交互1. 创建报表。在前面已经讲过怎么创建报表,在这里只要选择报表存放目录为工程的WebContent。如图:2. 在报表文件中新建一
15、个脚本数据源。如下图:点击Finish,完成脚本数据源的创建。3. 创建一个数据集。1) 数据类型,如下图:2) 点击Next,为数据集定制输出列。如下图:点击Finish,完成数据的创建。如下图:4. java类与报表交互选择Data Set(创建的数据集),在报表设计视图点击Script选项卡进入脚本编辑界面。l 打开Script脚本窗口顶部的方法列表并选择open方法,输入下列代码。importPackage(Packages.test)emps = DataFactory.getData();iterator = emps.iterator();l 打开Script脚本窗口顶部的方法列
16、表并选择fetch方法,输入下列代码。if(iterator.hasNext() = false )return false;var emp = iterator.next();row1 = emp.getId();row2 = emp.getName();row3 = emp.getSex();row4 = emp.getAddress();return true;l 打开Script脚本窗口顶部的方法列表并选择close方法,输入下列代码。如下图: emps = null;iterator = null;emp = null;5. 在报表设计视图点击Layout(布局),选项卡进入报表布局
17、编辑界面。如下图:6. 启动服务器测试报表。结果如下图:注意:如果在报表设计视图的Preview预览,需要将java拷贝到如下目录:C:eclipsepluginsorg.eclipse.birt.report.viewer_2.2.0.v20070620birtWEB-INFclasses。4.3 BIRT脚本参考在设计视图点击Script,然后点击Palette,可以看BIRT脚本导航目录。如下图:l Context报表的上下文信息。l Report Parameters 报表参数。l Native JavaScript Functions 本地javascript函数。l BIRT Fu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报表 BIRT 开发 手册

链接地址:https://www.31ppt.com/p-3800938.html