- 浏览: 258444 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (289)
- java (72)
- oracle (3)
- mysql (5)
- spring (28)
- hibernate (2)
- osgi (0)
- linux (2)
- ExtJs (1)
- jvm (0)
- mybatis (7)
- 分布式 (11)
- MINA (6)
- apache+tomcat (13)
- js+htm (7)
- android (44)
- http (1)
- hbase+hdoop (0)
- memcache (13)
- search (27)
- 部署及性能 (12)
- mongoDB (2)
- 多线程 (12)
- 安全管理验证 (9)
- struts (1)
- webservice (0)
- easyUI (1)
- spring security (16)
- pattern (6)
- 算法 (2)
最新评论
-
lzh8189146:
CommonsHttpSolrServer这个类,现在是不是没 ...
CommonsHttpSolrServer -
xiaochanzi:
我按照你的方法试了下,tomcat6可以发布,但是访问任何网页 ...
基于内嵌Tomcat的应用开发 -
phoneeye:
麻烦你,如果是抄来的文章,请给出来源。谢谢
ant 两则技巧 -
neverforget:
转载不注明出处
Spring Security3.1登陆验证 替换 usernamepasswordfilter -
liang1022:
若不使用eclipse ,如何在命令行下 运行服务端程序 ?
WebService CXF学习(入门篇2):HelloWorld
birt的各种对象,包括数据源(datasource)、数据集(dataset)及各种报表元素(report item)都可以添加eventhandler对象,实现对这些对象的事件的响应。eventhandler实现的方式有两种:JavaScript语言和Java语言。由于Java的可调试性,开发起来相对方便一些,我这里利用Java开发了dataset的一个eventhandler:
mport java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.birt.report.engine.api.script.IUpdatableDataSetRow;
import org.eclipse.birt.report.engine.api.script.ScriptException;
import org.eclipse.birt.report.engine.api.script.eventadapter.ScriptedDataSetEventAdapter;
import org.eclipse.birt.report.engine.api.script.instance.IDataSetInstance;
import com.tkxing.htmlparser.buss.report.model.BaseReportModel;
import com.tkxing.htmlparser.buss.report.model.SingleStockDataReportModel;
public class ScriptedDataSetEventHandler extends ScriptedDataSetEventAdapter {
Log log = LogFactory.getLog(ScriptedDataSetEventHandler.class);
private int num = 0;
private int total = 0;
private List dataList;
@Override
public void open(IDataSetInstance dataSet) {
// TODO Auto-generated method stub
super.open(dataSet);
BaseReportModel reportModel = new SingleStockDataReportModel();
dataList = (List) reportModel.getModel();
this.total = dataList.size();
}
@Override
public boolean fetch(IDataSetInstance dataSet, IUpdatableDataSetRow row) {
// TODO Auto-generated method stub
try {
if (num >= total) {
return false;
}
String[] dataRow = (String[]) this.dataList.get(num);
for (int i = 1; i <= dataRow.length; i++) {
row.setColumnValue(i, dataRow[i - 1]);
System.out.println(i + " = " + dataRow[i - 1]);
}
num++;
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
// return super.fetch(dataSet, row);
}
}
数据模式reportModel代码如下:
import java.util.ArrayList;
import java.util.List;
public class SingleStockDataReportModel extends BaseReportModel {
private List dataList;
public SingleStockDataReportModel() {
// TODO Auto-generated constructor stub
this.dataList = new ArrayList();
for(int i=0;i<10;i++)
{
String []rowData = new String[3];
for(int j=0;j<rowData.length;j++)
{
rowData[j] = new String(new Integer(i*10+j).toString());
}
this.dataList.add(rowData);
}
}
public List getDataList() {
/*
this.dataList = new ArrayList();
for(int i=0;i<10;i++)
{
String []rowData = new String[3];
for(int j=0;j<rowData.length;j++)
{
rowData[j] = new String(new Integer(i*10+j).toString());
}
dataList.add(rowData);
}
*/
return (dataList);
}
public void setDataList(List dataList) {
this.dataList = dataList;
}
@Override
public Object getModel() {
// TODO Auto-generated method stub
return this.dataList;
}
}
利用birt的ReportEngine输出报表或者通过URL访问报表,在相应的位置设置断点,就可以实现对eventhandler的调试了。
测试的report.rptdesign如下:
<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.15" id="1">
<data-sources>
<script-data-source name="ScriptedDataSource" id="5"/>
</data-sources>
<data-sets>
<script-data-set name="ScriptedDataSet" id="6">
<property name="eventHandlerClass">com.tkxing.htmlparser.presentation.report.ScriptedDataSetEventHandler</property>
<list-property name="resultSetHints">
<structure>
<property name="position">1</property>
<property name="name">rs1</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">rs2</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">rs3</property>
<property name="dataType">string</property>
</structure>
</list-property>
<list-property name="columnHints">
<structure>
<property name="columnName">rs1</property>
</structure>
<structure>
<property name="columnName">rs2</property>
</structure>
<structure>
<property name="columnName">rs3</property>
</structure>
</list-property>
<property name="dataSource">ScriptedDataSource</property>
</script-data-set>
</data-sets>
<styles>
<style name="crosstab" id="2">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab-cell" id="3">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Page Master" id="4"/>
</page-setup>
<body>
<table name="table" id="7">
<property name="width">100%</property>
<property name="dataSet">ScriptedDataSet</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">rs1</property>
<expression name="expression">dataSetRow["rs1"]</expression>
</structure>
<structure>
<property name="name">rs2</property>
<expression name="expression">dataSetRow["rs2"]</expression>
</structure>
<structure>
<property name="name">rs3</property>
<expression name="expression">dataSetRow["rs3"]</expression>
</structure>
</list-property>
<column id="26"/>
<column id="27"/>
<column id="28"/>
<header>
<row id="8">
<cell id="9">
<label name="rs1" id="10">
<text-property name="text">rs1</text-property>
</label>
</cell>
<cell id="11">
<label name="rs2" id="12">
<text-property name="text">rs2</text-property>
</label>
</cell>
<cell id="13">
<label name="rs3" id="14">
<text-property name="text">rs3</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="15">
<cell id="16">
<data name="data_rs1" id="17">
<property name="resultSetColumn">rs1</property>
</data>
</cell>
<cell id="18">
<data name="data_rs2" id="19">
<property name="resultSetColumn">rs2</property>
</data>
</cell>
<cell id="20">
<data name="data_rs3" id="21">
<property name="resultSetColumn">rs3</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="22">
<cell id="23"/>
<cell id="24"/>
<cell id="25"/>
</row>
</footer>
</table>
</body>
</report>
测试的结果如图:
rs1 rs2 rs3
0 1 2
10 11 12
20 21 22
发表评论
-
Java keytool 安全证书学习笔记
2012-08-02 14:16 795http://linliangyi2007.iteye.com ... -
java国际化
2012-07-16 14:08 409http://lavasoft.blog.51cto.com/ ... -
Java版远程控制V1.0
2012-06-17 21:37 749http://www.cnblogs.com/syxchina ... -
浅析Java中CountDownLatch用法
2012-05-16 20:57 792CountDownLatch如其所写,是一个 ... -
SMTP发送邮件
2012-04-18 09:41 756SMTP发送邮件 openkk 2011-06-0 ... -
smtp 返回代码 信息
2012-04-18 08:52 1440SMTP Server Response Cod ... -
JavaMail详解
2012-04-18 02:24 0JavaMail详解 博客分类: JAV ... -
安装Eclipse反编译插件
2012-04-17 09:34 798安装Eclipse反编译插件 博客分类: ... -
Java编程中“为了性能”尽量要做到的一些地方
2012-04-13 08:30 660最近的机器内存又爆满了,除了新增机器内存外,还应该好好r ... -
Dijkstra算法
2012-04-11 08:00 859Dijkstra算法 博客分类: 算 ... -
java 播放音乐
2012-04-11 08:00 993java 播放音乐 博客分类: J2 ... -
Java中的native,transient,volatile和strictfp关键字
2012-04-06 08:49 727Java中的native,transient,v ... -
用ReentrantLock模拟宴会的热闹情景
2012-04-05 08:32 901用ReentrantLock模拟宴会的热闹情景 ... -
Hashmap 分析
2012-04-05 08:32 726Hashmap 博客分类: 算法 ... -
ExecutorService线程池
2012-04-05 08:32 753ExecutorService线程池 (2010 ... -
Java并发:juc Executor框架详解
2012-04-05 08:32 774Java并发:juc Executor ... -
java并发包,多线程,工具类,笔记
2012-04-11 08:00 891JDK 线程池 Executors.newCachedT ... -
利用 Spring 和 EHCache 做方法缓存处理〔转〕
2012-04-09 09:49 834利用 Spring 和 EHCache 做方法缓存处理〔 ... -
EhCache使用详细介绍
2012-04-09 09:49 1344EhCache使用详细介绍 Ehcache中不仅可 ... -
HashMap 分析
2012-04-01 08:21 1894http://www.blogjava.net ...
相关推荐
结合Eclipse的强大开发环境,Java开发者可以充分利用现有的技能库,为BIRT报表注入更多创新和定制化功能。通过不断学习和实践,你可以熟练掌握在Eclipse中使用Java实现BIRT的事件处理,为你的报表应用增添无限可能。
Java Web项目集成开源报表工具BIRT 本文将指导读者如何将BIRT开源报表工具集成到已有的Java Web项目中,以Birt4.4.2为例。下面是具体的步骤和知识点: 步骤1:下载BIRT 首先,读者需要下载BIRT的最新版本。在BIRT...
Java Web项目集成Birt4.4.2是一个过程,用于将Birt开源报表系统整合到非Maven构建的Java Web应用程序中,以便在项目中利用Birt的强大报表生成能力。以下是一个详细的步骤指南: 1. **下载Birt4.4.2**: 首先,访问...
BIRT 在Eclipse中以透视图(perspective )的方式显示。 使用Eclipse主菜单的(Window )选项打开它。 选择“打开透视图”(Open Perspective), 然后是“报表设计”(Report Design)。 如果“报表设计”(Report ...
BIRT(Business Intelligence and Reporting Tools)是开源的Java...通过学习这个压缩包的内容,开发者不仅可以掌握BIRT的基本用法,还能了解到如何在实际项目中有效利用BIRT来提升数据分析和报告呈现的质量和效率。
通过以上步骤,Java开发者可以利用BIRT和ECharts构建出具有高级数据可视化的报表系统。提供的"Java Birt和echarts整合.pdf"文档可能包含具体的整合步骤、示例代码或配置细节,对于理解和实践这个过程会有很大帮助。...
初学者的视频,eclipse自带开发birt的报表开发,用于报表开发的学习,可以尽快了解birt报表的开发,快速设计,java开发初学者的资源
Java做报表工具BIRT(Business Intelligence and Reporting Tools)是一个开源的报表系统,它为开发者提供了...通过掌握以上知识点,你将能够有效地利用Java和BIRT来创建高质量的报表,满足业务分析和决策支持的需求。
百灵报表(BIRT)是一款基于Java的开源报表系统,由Eclipse基金会开发并维护,广泛应用于企业级的报表设计和生成。它提供了一个强大的、灵活的报告设计环境,能够生成各种复杂的数据可视化效果,包括列表、交叉表、...
BIRT报表开发是基于Java技术的一种强大的开源报表解决方案,主要应用于Eclipse平台,为J2EE的Web应用程序提供了全面的商业智能和报告工具。BIRT由两部分核心组件构成:一是Eclipse集成的报表设计器,允许开发者通过...
BIRT(Business Intelligence and Reporting Tools), 是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java 和 JavaEE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署...
BIRT(Business Intelligence and Reporting Tools)是开源的报表系统,由Eclipse基金会维护,主要用于生成动态的...通过系统地学习和实践,你将能够利用BIRT强大的功能,为你的企业或项目创建出专业、高效的报表系统。
Java 报表工具BIRT完全入门初级版 ●高清中文PDF版 ●清晰易懂,图文并茂,内容丰富 ●入门必备,必有收获 ●内附插件下载地址和说明(readme.txt) ●请用winrar3.x或以上版本解压后使用 ●经诺顿检测无毒无广告
"Birt Java 整合开发详解" 本文将详细介绍如何构建一个 Birt 报表应用程序,从官方教材上翻译的,比较详细。 一、创建报表引擎 REPORT ENGINE 是 ReportEngine 类的一个实例,是任何报表应用程序的关键部分。首先...
BIRT是由Eclipse基金会维护的一个开源项目,旨在为Java和Web应用程序提供报表设计和展示功能。它支持多种数据源,包括关系型数据库、XML、Web服务等,使得开发人员能够轻松地集成报表到他们的应用中。 2. **XML...
BIRT(Business Intelligence and Reporting Tools)是Eclipse基金会下的一个开源报表...开发者可以通过理解和利用这些jar包,将BIRT的强大功能整合进自己的Java应用程序中,为用户提供丰富的数据可视化和分析能力。
【BIRT报告与Java结合应用】 BIRT(Business Intelligence and Reporting Tools)是Eclipse基金会下的一款开源报表系统,主要用于生成动态、交互式的报告。它集成了数据可视化、数据分析以及报告设计功能,支持Java...
本话题主要关注如何利用BIRT API动态创建表格,这是一个在数据可视化和业务智能应用中常见的需求。 在给定的资源中,我们有三个关键文件:`CreateTable.java`、`BirtEngine.java`和`createTable.jsp`。这些文件分别...
描述中提到,“自己写的birt报表公用Style样式,能应付一般的报表”。这表明这组CSS样式是个人或团队根据实际项目需求定制的,适用于各种常见类型的报表。其中包括了基本的排版、颜色搭配、字体设置等,满足日常报告...