欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    开源报表BIRT开发手册.doc

    • 资源ID:3800938       资源大小:422KB        全文页数:42页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    开源报表BIRT开发手册.doc

    4 Birt报表script在使用 Eclipse 工作台开发 BIRT 报表时,您可以使用 Java 或 JavaScript 编写定制事件处理程序。在使用 Eclipse ECP(Eclipse CORBA Plugin (ECP)提供一个可针对CORBA IDL文件语法进行着色的编辑器)开发 BIRT 报表时,只能编写 JavaScript 事件处理程序。无论是使用 Java 还是 JavaScript,可以编写的事件处理程序集合是相同的。可以使用 Java 来编写一些事件处理程序并使用 JavaScript 来编写另一些事件处理程序。如果同一个事件同时有 Java 和 JavaScript 事件处理程序,则 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 多参数查询在多参数查询时,根据输入的参数不同,查询出不同的结果集,这就需要对查询sql语言进行拼凑。在birt环境下这种拼凑可以在data set的script编辑框中完成。前端包含在标签中的查询参数提交上来后,通过paramsparameterName即可引用。1. 首先,按照3.3创建数据集的步骤创建数据集。Sql2. 创建报表参数,sql需要的条件参数。如下图:3. 点击Data Set(创建的数据集),然后点击编辑区的Script出现脚本编辑器。打开脚本窗口顶部的方法列表并选择brferOpern如下图:if(!paramsname.equals() | !paramscity.equals()this.queryText = 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,就在预览窗口看到根据条件查询结果。如下图: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 String("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("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.getHttpServletRequest( );propPath = new String(params"propFile");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(props.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 代码,所以与创建 JavaScript 事件处理程序相比,Java 事件处理程序的创建工作略为复杂。要创建 Java 事件处理程序类,必须编译 Java 类的源代码并确保该类对 BIRT 可视。但是,由于 Eclipse 是健壮的 Java 开发环境并支持将 Java 项目与 BIRT 项目集成,所以,为 BIRT 创建 Java 事件处理程序的过程已大为简化。4.2.1 创建java类1. 创建java工程或者报表web工程。如果创建报表web工程,可以将报表创建在web目录下,方便测试。l 选择File->New>Web Project,在窗口Configuretions下拉菜单选择BIRT Reporting Web 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(String 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 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("李四");emp2.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. 在报表文件中新建一个脚本数据源。如下图:点击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脚本窗口顶部的方法列表并选择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(布局),选项卡进入报表布局编辑界面。如下图: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 Functions 报表函数。l Operators 操作。BIRT Script API参考:http:/help.eclipse.org/help31/index.jsp?topic=/org.eclipse.birt.doc/enginescript/api/index.html5 Birt报表部署运行资源:Server:Tomcat5.5Runtime:birt-runtime-2_2_0Jdk:jdk1.5.0_025.1 直接使用运行birt-runtime-2_2_0包中的WebViewerExample1. 下载birt-runtime-2_2_0运行包。如下:  Download from: Eclipse downloads - mirror selection2. 下载解压包完整目录如下:3. 将WebViewerExample,复制到tomcat_home%webapps目录下。4. 将报表文件*.rptdesign 和*.rptconfig文件放于% tomcat-Home%webapps WebViewerExample目录下。5. 启动tomcat服务,浏览器地址栏输入:http:/127.0.0.1:8080/WebViewerExample/frameset?_report=test.rptdesign可以通过地址http:/127.0.0.1:8080/WebViewerExample/测试,点击页面的 View Example 。看到如下图所示表示部署成功:5.2 集成到已有web应用1. 与5.1的1、2步骤相同。2. 将WebViewerExample WEB-INF目录下面的lib、platform、tlds、jrun.web.xml、server-config.wsdd、viewer.properties拷贝到要集成的目标WEB应用的 WEB-INF目录下。如下图:3. 将WebViewerExample webcontent文件夹拷贝到要集成的目标WEB应用的根目录下。4. 在web.xml文件中添加如下信息。<display-name>Eclipse BIRT Report Viewer</display-name><!- Default locale setting -><context-param><param-name>BIRT_VIEWER_LOCALE</param-name><param-value>en-US</param-value></context-param><!- Report resources directory for preview. Default to $birt home -><context-param><param-name>BIRT_VIEWER_WORKING_FOLDER</param-name><param-value></param-value></context-param><!- The generated document files directory. Default to $birt home/documents -><context-param><param-name>BIRT_VIEWER_DOCUMENT_FOLDER</param-name><param-value></param-value></context-param><!- If usr can only access the reprot resources under working folder. Default is false -><context-param><param-name>WORKING_FOLDER_ACCESS_ONLY</param-name><param-value>false</param-value></context-param><!- Output image/chart directory. Default to $birt home/report/images -><context-param><param-name>BIRT_VIEWER_IMAGE_DIR</param-name><param-value></param-value></context-param><!- Engine log directory. Default to $birt home/logs -><context-param><param-name>BIRT_VIEWER_LOG_DIR</param-name><param-value></param-value></context-param><!- Report engine log level -><context-param><param-name>BIRT_VIEWER_LOG_LEVEL</param-name><param-value>WARNING</param-value></context-param><!- Directory to store all birt report script libraries (JARs). Default to $birt home/scriptlib -><context-param><param-name>BIRT_VIEWER_SCRIPTLIB_DIR</param-name><param-value></param-value></context-param><!- Resource location directory. Default to $birt home -><context-param><param-name>BIRT_RESOURCE_PATH</param-name><param-value></param-value></context-param><!- Preview report max rows limited. -><context-param><param-name>BIRT_VIEWER_MAX_ROWS</param-name><param-value></param-value></context-param><!- If always overwrite generated document file. For runtime,efalult to true -><context-param><param-name>BIRT_OVERWRITE_DOCUMENT</param-name><param-value>true</param-value></context-param><!- Define BIRT viewer configuration file -><context-param><param-name>BIRT_VIEWER_CONFIG_FILE</param-name><param-value>WEB-INF/viewer.properties</param-value></context-param><!- If turn on the function that supports print on the server side. Default to on. -><context-param><param-name>BIRT_VIEWER_PRINT_SERVERSIDE</param-name><param-value>ON</param-value></context-param><!- If force optimized HTML output. Default to true -><context-param><param-name>HTML_ENABLE_AGENTSTYLE_ENGINE</param-name><param-value>true</param-value></context-param><!- Viewer Servlet Context Listener -><listener><listener-class>org.eclipse.birt.report.listener.ViewerServletContextListener</listener-class></listener><!- Viewer HttpSession Listener -><listener><listener-class>org.eclipse.birt.report.listener.ViewerHttpSessionListener</listener-class></listener><!- Viewer Servlet, Support SOAP -><servlet><servlet-name>ViewerServlet</servlet-name><servlet-class>org.eclipse.birt.report.servlet.ViewerServlet</servlet-class></servlet><!- Engine Serlvet -><servlet><servlet-name>EngineServlet</servlet-name><servlet-class>org.eclipse.birt.report.servlet.BirtEngineServlet</servlet-class></servlet><servlet-mapping><servlet-name>ViewerServlet</servlet-name><url-pattern>/frameset</url-pattern></servlet-mapping><servlet-mapping><servlet-name>ViewerServlet</servlet-name><url-pattern>/run</url-pattern></servlet-mapping><servlet-mapping><servlet-name>EngineServlet</servlet-name><url-pattern>/preview</url-pattern></servlet-mapping><servlet-mapping><servlet-name>EngineServlet</servlet-name><url-pattern>/download</url-pattern></servlet-mapping><servlet-mapping><servlet-name>EngineServlet</servlet-name><url-pattern>/parameter</url-pattern></servlet-mapping><taglib><taglib-uri>/birt.tld</taglib-uri><taglib-location>/WEB-INF/tlds/birt.tld</taglib-location></taglib>5. 将报表文件拷贝到目标应用的根目录下或者/report目录下面。我们可以通过将5.1根目录下的test.rptdesign拷贝到我们的目标应用程序的根目录下,在地址栏输入:http:/127.0.0.1:8080/【my web】/frameset?_report=test.rptdesign看到如下图所示表示部署成功:5.3 数据库驱动位置把所使用的数据库的JDBC驱动jar包复制到/webapps/WebViewerExample/WEB-INF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_2.2.0.v20070615/drivers目录下。5.4 报表url说明http:/127.0.0.1:8080/WebViewerExample/frameset?_report=report/reportName.rptdesign说明如下:1. Servlet模式说明:Frameset 采用Ajax框架,可以显示工具条,导航条和TOC面板,实现复杂的操作,如分页处理,导出数据,导出报表,打印等等。该模式下会自动生成report document文件(预览report design文件)到特定的目录(用户可以用参数指定,也可以定义在web.xml里)。采用Ajax,速度较慢。run 也采用Ajax框架,但不实现frameset的复杂功能,不会生成临时的report document文件(预览report design文件),也不支持分页,这个主要是应用在BIRT Designer里的preview tab里,可以支持cancel操作,其它不怎么常用。采用Ajax,速度较慢。Preview 没有用到Ajax框架,直接调用底层Engine API对报表进行render,把生成的报表内容直接输出到浏览器。这种模式和run模式调用的是相同的Engine API,唯一区别在于run采用Ajax获取报表内容,而preview直接输出到浏览器。如果要支持分页,用户需要在URL上定义_page和_pagerange参数,这两个参数也会在后面详细说明。需要特别说明的是,在这几种预览模式中,preview的速度是最快的。Document 该模式主要是为了从report design文件生成report document文件。用户可以在URL上提定document文件生成存放的路径(存放在server端),如果未指定,会直接生成rptdocument发送到客户端浏览器,用户可以下载到客户端。output 该模式类似于frameset,会自动生成report document文件(预览report design文件),区别在于output不采用Ajax,而是将生成的报表内容直接输出到浏览器。parameter 该模式主要用于生成一个参数对话框,一般用户不常用,用户可以直接通过提供的JSP Tag-parameterPage去实现参数对话框,不需要直接调用。download 用于导出报表数据为CSV格式,当你使用frameset工具条里的导出数据功能时,会用到这个模式。2. url参数说明:_report定义要预览的rptdesign文件路径,支持相对路径和绝对路径,相对路径是相对于web.xml中定义的工作目录。_document定义要预览的rptdocument文件路径,同样支持相对和绝对路径。相对路径是相对于web.xml中定义的工作目录。在同时定义了_report和_document参数时,以_document为优先,如未找到相应的document文件,才会从design文件生成document文件(frameset/output)或是直接去render这个design文件(preview/run)。_title定义报表显示的标题。_showtitle是否显示frameset模式下上方的标题部分。true | false_toolbar是否显示frameset模式下的工具条。true | false_navigationbar是否显示frameset模式下的导航条。true | false_parameterpage是否强制弹出或不弹出报表参数对话框。true | false_format输出报表的格式,默认为html。现在支持:pdf | doc | xls | postscript | ppt_locale设置Locale信息,如 _locale=zh_CN, 注意必须是国家加语言。_svg设置chart输出是否以SVG格式输出。true | false,frameset和run模式下,会采用javascript判断客户端浏览器是否支持svg,但并非对所有浏览器有效。_bookmark设置页面要定位的书签名字。_istoc指定定位的书签是不是一个TOC名字。如为true,就会根据_bookmark参数值去获取一个真正的书签名,从而实现正常的跳转。这个主要用于定位到一个TOC上。_rtl指定HTML页面输出是否需要right to left。支持不同国家的阅读习惯,如阿拉伯国家是从右到左的。_page指定要输出的报表页数,这个依赖于报表的分页设计(page break)。_pagerange指定要输出的报表页数范围。如1,3,5-9。_resourceFolder定义资源目录路径。同web.xml中的BIRT_RESOURCE_PATH设置。_asattachment是否以附件方式下载报表,如生成PDF或是其它格式里。默认是inline。_masterpage是否要显示master page。true | false_designer该参数主要是应用在BIRT Designer环境下,如会读取cache的报表参数等等,一般不用。true | false_overwrite该参数同web.xml定义的参数,不过web.xml里是全局设置,在URL上通过参数可以定义本次操作的设置。_imageID内部参数,用于image的引用,一般不用。_maxrows设置Dataset查询的最大记录数,要注意这个设置是全局的,会影响后面所有的请求。主要用于BIRT Designer下,提高报表设计效率。同web.xml中的BIRT_VIEWER_MAX_ROWS设置。_maxlevels设置查询获取Cube的最大级数。同上面的_maxrows,也主要用于BIRT Designer设计环境。同web.xml中的BIRT_VIEWER_MAX_CUBE_LEVELS设置。_cubememsize同web.xml中的BIRT_VIEWER_CUBE_MEMORY_SIZE参数设置。_instanceid如果查看BIRT输出的HTML代码,你就可以看到一些HTML Element会有一个iid的属性(如table),这个就是instanceid。这个是Engine动态生成的,不可提前预知。所以你需要从HTML代码中得到这个值。该参数主要是为了获取reportlet(报表片断,如只输出报表中的一个Table或是一个Chart)。需要配合_isreportlet参数。_isreportlet指定当前输出是不是一个reportlet。true | false特别说明:为了输出一个reportlet,BIRT现在提供两种方式。l 为要输出的对象(表格或是Chart)定义一个bookmark,然后可以用下面的URL输出reportlet.http:/localhost:8080/birt/frameset?_report=test.rptdesign&_bookmark=bk&_isreportlet=truel 采用instanceid,但这个值事先是无法预知的,需要预览一次后从HTML代码中得到。然后用下面的URL输出reportlet.http:/localhost:8080/birt/output?_report=test.rptdesign&_instanceid=iid&_isreportlet=true注意,reportlet只支持document文档。如果是预览design文档去输出reportlet,就必须要使用frameset/output(自动生成document文档)。_cleanBIRT里临时生成的一些文件都是和session相关的,比如临时document文件,还有image文件。这些文件也可以通过session进行管理,这个参数就是指定是否需要在session timeout的时候清除这些临时文件。默认值是true。true | false_dpi可以设置输出Chart的dpi数值。_fittopage暂时这个参数只对PDF和postscript格式报表有效,指定是否调整至适合页面。_pagebreako

    注意事项

    本文(开源报表BIRT开发手册.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开