`
hugh-lin
  • 浏览: 72925 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

【转】在birt中显示条形码

    博客分类:
  • Java
阅读更多

http://wuyu.someok.com/blog/dbreport/index.html

条码显示,在birt中最常见的有两种方法:

1、使用条码字体(对pdf无效);

2、用barcode的开源包,生成barcode,然后在报表里用动态地址去取图片。


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


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


package cn.ynzc.common.birt.test;

import java.io.File;

import java.io.FileOutputStream;

import jbarcodebean.Code128;

import jbarcodebean.JBarcodeBean;

import org.apache.commons.codec.digest.DigestUtils;

import org.eclipse.birt.report.engine.api.script.IReportContext;

import org.eclipse.birt.report.engine.api.script.eventadapter.ImageEventAdapter;

import org.eclipse.birt.report.engine.api.script.instance.IImageInstance;



public class MyLabelClass extends ImageEventAdapter {



public void onCreate(IImageInstance image, IReportContext reportContext) {

try {

//实际应用中,可以使用image.getRowData().getColumnValue("columnname")获得字段值

String code = "ABCDEF123-2222";

//似乎windows文件名中不允许使用“-”等符号,干脆将code进行md5散列处理

File file = new File(System.getProperty("java.io.tmpdir"), DigestUtils.md5Hex(code));

//避免每次都进行条码文件生成

if (!file.exists()) {

JBarcodeBean bb = new JBarcodeBean();

bb.setCodeType(new Code128());

bb.setShowText(true);

bb.setBarcodeHeight(45); //条码高度

bb.setCode(code);

bb.gifEncode(new FileOutputStream(file));

}

image.setFile(file.getAbsolutePath());

}

catch (Exception e) {

e.printStackTrace();

}

}



}


测试用的birt报表文件简单得要死,就往上面扔了个image元素,设置其Event Handler Class为刚才写好的java类,最终得到的rptdesign文件内容如下:


<?xml version="1.0" encoding="UTF-8"?>



<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.6" id="1">

<property name="createdBy">Eclipse BIRT Designer Version 2.1.2.v20070205-1728 Build
<20070205-1728>property>

<property name="units">inproperty>

<page-setup>

<simple-master-page name="Simple MasterPage" id="2"/>

</page-setup>

<body>

<image id="4">

<property name="eventHandlerClass">cn.ynzc.common.birt.test.MyLabelClassproperty>

</image>

</body>

</report>


运行测试,条形码出来了

分享到:
评论
1 楼 dlut_zxf 2008-07-08  
新版本中条形码字体可以在pdf中显示了。

www.actuatechina.com上有Birt的开发人员回答问题。有问题可以去看看。

相关推荐

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

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

    在birt中添加js日期控件

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

    birt中文帮助文档

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

    birt中文使用说明

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

    BIRT中文帮助文档

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

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

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

    birt中文包

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

    birt中文官方资料

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

    Birt中文手册.chm

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

    转:Birt接收JSP传递的参数值

    在IT行业中,BIRT(Business Intelligence and Reporting Tools)是一款开源的报表系统,广泛应用于Web应用程序中,用于生成复杂的业务报告。而JSP(JavaServer Pages)是Java平台上的动态网页技术,常用于构建用户...

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

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

    在birt中使用报表文档

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

    birt中使用script简介

    在BIRT生成的交叉报表中,当某个分组数据缺失时,默认会显示为空。为了改善用户体验,避免报表中的空白字段,可以使用脚本来自动替换这些空值。具体步骤如下: 1. 首先,在报表布局窗口中选中需要进行空值替换的...

    BIRT中文手册

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

    birt 报表教程 中文

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

    birt中文api

    birt中文帮助文档.chm birt中文API.chm

    birt报表详细中文文档

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

    birt 中文包

    在中文环境中,使用英文版的BIRT可能会给用户带来不便,因此IBM官方提供了BIRT的汉化包,以满足中国用户的需求。 **汉化包的作用**: 1. **用户界面本地化**:汉化包主要是将BIRT的用户界面元素,如菜单、按钮、...

    eclipse报表插件BIRT中文教程及示例

    BIRT是Eclipse IDE的一部分,因此开发者可以在熟悉的环境中创建、设计和部署复杂的报表。 在"eclipse报表插件BIRT中文教程及示例"中,你可以学习到以下关键知识点: 1. **BIRT安装与集成**:首先,你需要知道如何...

    birt中文指南含实例报表项目

    在本指南中,你将深入了解到BIRT的核心概念和功能,包括但不限于: 1. **BIRT架构**:BIRT由设计时环境(Design-Time Environment)和运行时环境(Run-Time Environment)两部分组成。设计时环境基于Eclipse IDE,...

Global site tag (gtag.js) - Google Analytics