开源报表 BIRT 开发 手册 2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Birt报表开发手册第1页共42页4Birt报表script在使用Eclipse工作台开发BIRT报表时,您可以使用Java或JavaScript编写定制事件处理程序。在使用EclipseECP(EclipseCORBAPlugin(ECP)提供一个可针对CORBAIDL文件语法进行着色的编辑器)开发BIRT报表时,只能编写JavaScript事件处理程序。无论是使用Java还是JavaScript,可以编写的事件处理程序集合是相同的。可以使用Java来编写一些事件处理程序并使用JavaScript来编写另一些事件处理程序。如果同一个事件同时有Java和JavaScript事件处理程序,则BIRT将使用JavaScript处理程序。4.1avascript脚本编写4.1.1隔行高亮度显示1.在布局(Layout)中,选择Table-Detail的行。如下图:2.然后选择Script,打开脚本窗口顶部的方法列表并选择onPrepare,如图所示。varcount=0;Birt报表开发手册第2页共42页3.最后打开脚本窗口顶部的方法列表并选择onCreate,如图所示:count++;if(count%2!=0){style.setBackgroundColor(silver);}4.保存,点击Preview预览结果如下图。Birt报表开发手册第3页共42页4.1.2多参数查询在多参数查询时,根据输入的参数不同,查询出不同的结果集,这就需要对查询sql语言进行拼凑。在birt环境下这种拼凑可以在dataset的script编辑框中完成。前端包含在标签中的查询参数提交上来后,通过params[parameterName]即可引用。1.首先,按照3.3创建数据集的步骤创建数据集。Sql2.创建报表参数,sql需要的条件参数。如下图:3.点击DataSet(创建的数据集),然后点击编辑区的Script出现脚本编辑器。打开脚本窗口顶部的方法列表并选择brferOpern如下图:if(!params[name].equals()||!params[city].equals())this.queryText=this.queryText+where;if(params[name]!=null&&!params[name].equals())this.queryText=this.queryText+CUSTOMER_NAMElike'%+params[name]+%';if(!params[city].equals())this.queryText=this.queryText+andcity='+params[city]+';Birt报表开发手册第4页共42页说明:this.queryText获取之前创建的没有参数的sql语句。4.保存,点击编辑区的Preview预览。会弹出输入参数的对话框。如下图:5.点击ok,就在预览窗口看到根据条件查询结果。如下图:4.1.3脚本创建数据源通过脚本从properties配置文件取得jdbc数据源信息。Birt报表开发手册第5页共42页1.在已创建的jdbc数据源的基础编写脚本。2.选择数据资源管理器(DataExplorer)-DataSource(创建的数据源),如下图:3.点击编辑区的Script脚本编辑器,打开脚本窗口顶部的方法列表并选择brferOpern如下图:importPackage(Packages.java.io);importPackage(Packages.java.util);fin=newjava.io.FileInputStream(newString(c:/temp/report.properties));if(fin!=null){props=newjava.util.Properties();props.load(fin);}extensionProperties.odaURL=newString(props.getProperty(dbURL));extensionProperties.odaDriverClass=newString(props.getProperty(driverName));extensionProperties.odaUser=newString(props.getProperty(userName));extensionProperties.odaPassword=newString(props.getProperty(password));if(fin!=null)fin.close();Birt报表开发手册第6页共42页由于在这里的代码只支持绝对路径,在服务器部署的情况下可能不太适用,可以修改一下支持相对路径,相对于你发布的应用/WEB-INF/目录。如下:importPackage(Packages.java.io,Packages.java.util,Packages.java.net);importPackage(Packages.javax.servlet.http);req=reportContext.getHttpServletRequest();propPath=newString(params[propFile]);if(propPath.charAt(0)!=/)propPath=/WEB-INF/+propPath;url=req.getSession().getServletContext().getResource(propPath);props=newjava.util.Properties();props.load(url.openStream());extensionProperties.odaURL=newString(props.getProperty(dbURL));extensionProperties.odaDriverClass=newString(props.getProperty(driverName));extensionProperties.odaUser=newString(props.getProperty(userName));extensionProperties.odaPassword=newString(props.getProperty(password));Birt报表开发手册第7页共42页4.2java脚本编写由于不是简单地在BIRT报表设计器中直接输入Java代码,所以与创建JavaScript事件处理程序相比,Java事件处理程序的创建工作略为复杂。要创建Java事件处理程序类,必须编译Java类的源代码并确保该类对BIRT可视。但是,由于Eclipse是健壮的Java开发环境并支持将Java项目与BIRT项目集成,所以,为BIRT创建Java事件处理程序的过程已大为简化。4.2.1创建java类1.创建java工程或者报表web工程。如果创建报表web工程,可以将报表创建在web目录下,方便测试。选择File-New-WebProject,在窗口Configuretions下拉菜单选择BIRTReportingWebProject。如图:Birt报表开发手册第8页共42页点击Finish,完成报表工程创建。如图:2.编写java类在工程src目录下创建类。如图:创建Employee类,职工信息类。Birt报表开发手册第9页共42页创建DataFactory类,数据集合类。packagetest;publicclassEmployee{privateStringid=;privateStringname=;privateStringsex=;privateStringaddress=;publicvoidsetId(Stringid){this.id=id;}publicStringgetId(){returnthis.id;}publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}publicvoidsetSex(Stringsex){this.sex=sex;}publicStringgetSex(){returnthis.sex;}publicvoidsetAddress(Stringaddress){this.address=address;}publicStringgetAddress(){returnthis.address;}}Birt报表开发手册第10页共42页packagetest;importjava.util.ArrayList;importjava.util.List;publicclassDataFactory{/***定制数据集合,这里也可以从数据库获取*@return*/publicstaticListgetData(){Employeeemp1=newEmployee();emp1.setId(00501);emp1.setName(张三);emp1.setSex(男);emp1.setAddress(西安);Employeeemp2=newEmployee();emp2.setId(00502);emp2.setName(李四);emp2.setSex(男);emp2.setAddress(北京);Employeeemp3=newEmployee();emp3.setId(00503);emp3.setName(王五);emp3.setSex(男);emp3.setAddress(深圳);Listlist=newArrayList();list.add(emp1);list.add(emp2);list.add(emp3);returnlist;}}Birt报表开发手册第11页共42页4.2.2java类与报表交互1.创建报表。在前面已经讲过怎么创建报表,在这里只要选择报表存放目录为工程的WebContent。如图:2.在报表文件中新建一个脚本数据源。如下图:Birt报表开发手册第12页共42页点击Finish,完成脚本数据源的创建。3.创建一个数据集。1)数据类型,如下图:2)点击Next,为数据集定制输出列。如下图:Birt报表开发手册第13页共42页点击Finish,完成数据的创建。如下图:4.java类与报表交互选择DataSet(创建的数据集),在报表设计视图点击Script选项卡进入脚本编辑界面。打开Script脚本窗口顶部的方法列表并选择open方法,输入下列代码。Birt报表开发手册第14页共42页打开Script脚本窗口顶部的方法列表并选择fetch方法,输入下列代码。打开Script脚本窗口顶部的方法列表并选择close方法,输入下列代码。如下图:if(iterator.hasNext()==false){returnfalse;}varemp=iterator.next();row[1]=emp.getId();row[2]=emp.getName();row[3]=emp.getSex();row[4]=emp.getAddress();returntrue;importPackage(Packages.test)emps=DataFactory.getData();iterator=emps.iterator();Birt报表开发手册第15页共42页5.在报表设计视图点击Layout(布局),选项卡进入报表布局编辑界面。如下图:6.启动服务器测试报表。结果如下图:emps=null;iterator=null;emp=null;Birt报表开发手册第16页共42页注意:如果在报表设计视图的Preview预览,需要将java拷贝到如下目录:C:\eclipse\plugins\org.eclipse.birt.report.viewer_2.2.0.v2007

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功