`
coolpep
  • 浏览: 80517 次
社区版块
存档分类
最新评论

在birt2.1.2中显示条形码

 
阅读更多
条码显示,在birt中最常见的有两种方法:1、使用条码字体(对pdf无效);2、用barcode的开源包,生成barcode,然后在报表里用动态地址去取图片。

今晚看birt文档(第 23 章 使用 Java 编写事件处理程序),例子中用java实现了一个LabelEventAdapter的适配器,对标签元素进行事件控制。脑子里灵光一现,似乎条码有着落了。

我的测试例子很简单,继承ImageEventAdapter类,重载onCreate方法,以进行条形码处理

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1packagecn.ynzc.common.birt.test;
2
3importjava.io.File;
4importjava.io.FileOutputStream;
5
6importjbarcodebean.Code128;
7importjbarcodebean.JBarcodeBean;
8
9importorg.apache.commons.codec.digest.DigestUtils;
10importorg.eclipse.birt.report.engine.api.script.IReportContext;
11importorg.eclipse.birt.report.engine.api.script.eventadapter.ImageEventAdapter;
12importorg.eclipse.birt.report.engine.api.script.instance.IImageInstance;
13
14publicclassMyLabelClassextendsImageEventAdapter{
15
16publicvoidonCreate(IImageInstanceimage,IReportContextreportContext){
17try{
18//实际应用中,可以使用image.getRowData().getColumnValue("columnname")获得字段值
19Stringcode="ABCDEF123-2222";
20//似乎windows文件名中不允许使用“-”等符号,干脆将code进行md5散列处理
21Filefile=newFile(System.getProperty("java.io.tmpdir"),DigestUtils.md5Hex(code));
22//避免每次都进行条码文件生成
23if(!file.exists()){
24JBarcodeBeanbb=newJBarcodeBean();
25bb.setCodeType(newCode128());
26bb.setShowText(true);
27bb.setBarcodeHeight(45);//条码高度
28bb.setCode(code);
29bb.gifEncode(newFileOutputStream(file));
30}
31image.setFile(file.getAbsolutePath());
32}
33catch(Exceptione){
34e.printStackTrace();
35}
36}
37
38}
39

测试用的birt报表文件简单得要死,就往上面扔了个image元素,设置其Event Handler Class为刚才写好的java类,最终得到的rptdesign文件内容如下:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1<?xmlversion="1.0"encoding="UTF-8"?>
2<!--WrittenbyEclipseBIRT2.0-->
3<reportxmlns="http://www.eclipse.org/birt/2005/design"version="3.2.6"id="1">
4<propertyname="createdBy">EclipseBIRTDesignerVersion2.1.2.v20070205-1728Build&lt;20070205-1728></property>
5<propertyname="units">in</property>
6<page-setup>
7<simple-master-pagename="SimpleMasterPage"id="2"/>
8</page-setup>
9<body>
10<imageid="4">
11<propertyname="eventHandlerClass">cn.ynzc.common.birt.test.MyLabelClass</property>
12</image>
13</body>
14</report>

运行测试,条形码出来了
birt.jpg

遗留问题:
这次是调用org.eclipse.birt.report.engine.api.script.instance.IImageInstance.setFile()来解决问题,从javadoc可以看到,IImageInstance有很多方法可以调用,其它方法分别有什么作用?比如我尝试了半天的setData(byte[])方法,一开始以为是用这个方法直接把图形数据set进去就ok,结果未成功。
分享到:
评论

相关推荐

    在birt中添加js日期控件

    在BIRT(Business Intelligence and Reporting Tools)中添加JavaScript日期控件是提高报表交互性和用户体验的重要步骤。本教程将详细介绍如何在BIRT报告中集成My97DatePicker,一个流行的JavaScript日期选择器,以...

    birt报表页面显示汉化文件及过程说明

    在本文中,我们将深入探讨如何实现BIRT报表的页面显示汉化,这涉及到对BIRT原有jar包中的英文资源文件进行替换,以显示中文界面。BIRT(Business Intelligence and Reporting Tools)是Eclipse基金会下的一个开源...

    birt中显示数据库中的html代码1

    在BIRT(Business Intelligence and Reporting Tools)报告设计中,有时候我们需要显示从数据库中获取的HTML代码,而不是作为纯文本呈现。这是因为数据源中可能存在富文本信息,如格式化的文本、链接或图片等,这些...

    birt 报表教程 中文

    - **启动新的报告设计**:在BIRT环境中创建新的报告设计项目。 - **指定数据源**:配置数据源,包括数据库连接信息。 - **报告布局**:设置报表的页面结构,包括表格、图表等元素。 - **格式化报告**:调整字体、...

    birt分组小计和自动增加序列号实现方法

    在BIRT(Business Intelligence and Reporting Tools)报表设计中,分组小计和自动增加序列号是常见的需求,尤其是在处理大量数据并需要呈现清晰结构时。本文将深入探讨这两种功能的实现方法。 首先,我们来讨论...

    birt中文帮助文档

    4. **数据集和查询**:在BIRT中,数据集是预定义的SQL查询或数据源查询,可以用于报表的各个部分。用户可以创建自定义的SQL查询或者使用内置的查询构建器来提取所需的数据。 5. **图表功能**:BIRT拥有强大的图表...

    birt中文使用说明

    3. 配置数据源:在BIRT Designer中,通过“数据”视图创建新的数据连接,选择对应的数据源类型(如MySQL、Oracle等),输入连接信息。 三、报表设计 1. 报表模板:BIRT提供了多种报表元素,如表格、图表、文本框等...

    Birt中文手册.chm

    任务 9:在 BIRT 报告查看器中预览报告 任务 10:在目录中显示贷记限额范围 聚集数据 如何在表达式构建器中构造聚集表达式 编写表达式 过滤数据 如何过滤行以便从 JDBC 数据源检索数据 如何在数据集级别进行...

    birt中文官方资料

    在BIRT中,主要涉及到以下几个核心概念和技术点: 1. **报表引擎**:BIRT的核心组件,负责处理报表的生成与展示。它能够连接多种数据源,包括关系型数据库、XML、Web服务等,将数据转化为可读的报表格式。 2. **...

    在birt中使用报表文档

    ### 在BIRT中使用报表文档的关键知识点 #### 1. 概述 - **BIRT简介**:BIRT(Business Intelligence and Reporting Tools)是一个基于Eclipse的开源报表系统,广泛应用于Java和J2EE平台上的Web应用程序开发。它提供...

    BIRT中文帮助文档

    在BIRT中,报表设计是通过可视化的报表设计器实现的,它提供了丰富的图表类型、表格样式、文本格式等元素,允许用户无需编程就能创建复杂的报表布局。设计师可以导入各种数据源,如SQL数据库、XML文件、Web服务等,...

    birt报表详细中文文档

    3. **报表引擎**:BIRT的报表引擎负责在运行时渲染和执行报表。它可以嵌入到任何Java应用程序中,如Web应用或桌面应用。 4. **动态内容**:BIRT允许报表中的元素根据数据或用户交互动态变化。例如,可以创建参数化...

    BIRT报表学习手册-中文

    在BIRT报表中,有时候我们不需要显示报表生成的日期时间,那么如何去掉这些日期时间呢?解决方法是打开Xml Source标签,找到标签,并删除标签中的内容,该标签用于显示日期时间。 二、BIRT报表隔行换颜色 在BIRT...

    birt中文包

    版本3.7的汉化包适用于至少4.2版的BIRT,显示了此汉化包的兼容性较好,即使在较新的BIRT版本上也能正常使用。 【标签】"birt 汉化"进一步强调了这个压缩包的主要功能,即解决BIRT工具的语言问题,使其更适合中国...

    birt公用CSS样式

    在IT行业中,BIRT(Business Intelligence and Reporting Tools)是一款开源的报表系统,它允许开发者创建丰富的数据可视化和报告。在创建BIRT报表时,CSS(Cascading Style Sheets)样式起到了至关重要的作用,它们...

    birt使用入门(自己手动写的包含怎样在jsp页面展示)

    2. 在搜索框中输入“BIRT”,找到BIRT相关插件并安装。 3. 安装完成后,重启Eclipse,你将在"Perspective"菜单中看到"BIRT"选项。 **创建BIRT报表**: 1. 创建一个新的项目,选择"BIRT"透视图。 2. 新建一个报表...

    birt4.4.1导出报表中文名称

    在BIRT 4.4.1中,为了实现报表导出时显示中文名称,开发者可能需要进行一些特定的配置。首先,描述中提到的"jar包已经修改好",这意味着可能已经包含了对中文支持的补丁或自定义组件。通常,BIRT会依赖一些特定的库...

    birt 中文国际化(全)

    在BIRT应用中,`viewservlets.jar`包含了运行报表服务器所需的Servlet,这些Servlet处理客户端请求,如显示报表、导出报表等。为了实现中文国际化,我们需要确保这个库中的资源文件能够支持中文字符集和本地化设置。...

    BIRT中文手册

    在BIRT中,数据连接是至关重要的一步,它允许BIRT访问各种类型的数据源。手册将详细介绍如何配置JDBC连接,以及如何处理不同类型的数据库,如MySQL、Oracle和SQL Server等。同时,还会介绍如何使用非结构化数据源,...

Global site tag (gtag.js) - Google Analytics