继上篇bean数据源,如果我们自己定义自己的数据源该如何去写呢?
jasperReport提供了很多的便利去实现自己的DataSource,简单的有三种方式:
直接实现bean的方式 bean工厂 表格模型
还是使用前面的person.jasper文件,和Person.java VO类
直接实现bean的方式:
此种方式需要实现JRDataSource接口,定义一个二维对象数组用来存放数据,通过遍历数组的数据实现getFieldValue()和next()方法
PersonDataSource.java
package org.bulktree.ireport.customdata;
import javax.activation.DataSource;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
/** *//**
*
* @author bulktree Email: laoshulin@gmail.com @ Nov 7, 2008
*/
public class PersonDataSource implements JRDataSource {
public PersonDataSource() {
}
private Object[][] data = {
{ "001", "bulktree1", "Man1", "21", "001111", "IsoftStone1" },
{ "002", "bulktree2", "Man2", "22", "002222", "IsoftStone2" },
{ "003", "bulktree3", "Man3", "23", "003333", "IsoftStone3" },
{ "004", "bulktree4", "Man4", "24", "004444", "IsoftStone4" },
{ "005", "bulktree5", "Man5", "25", "005555", "IsoftStone5" },
{ "006", "bulktree6", "Man6", "26", "006666", "IsoftStone6" },
{ "007", "bulktree7", "Man7", "27", "007777", "IsoftStone7" },
{ "008", "bulktree8", "Man8", "28", "008888", "IsoftStone8" },
{ "009", "bulktree9", "Man9", "29", "009999", "IsoftStone9" },
{ "001", "oakertree1", "Man1", "21", "001111", "IsoftStone1" },
{ "002", "oakertree2", "Man2", "22", "002222", "IsoftStone2" },
{ "003", "oakertree3", "Man3", "23", "003333", "IsoftStone3" },
{ "004", "oakertree4", "Man4", "24", "004444", "IsoftStone4" },
{ "005", "oakertree5", "Man5", "25", "005555", "IsoftStone5" },
{ "006", "oakertree6", "Man6", "26", "006666", "IsoftStone6" },
{ "007", "oakertree7", "Man7", "27", "007777", "IsoftStone7" },
{ "008", "oakertree8", "Man8", "28", "008888", "IsoftStone8" },
{ "009", "oakertree9", "Man9", "29", "009999", "IsoftStone9" },
{ "001", "laoshulin1", "Man1", "21", "001111", "IsoftStone1" },
{ "002", "laoshulin2", "Man2", "22", "002222", "IsoftStone2" },
{ "003", "laoshulin3", "Man3", "23", "003333", "IsoftStone3" },
{ "004", "laoshulin4", "Man4", "24", "004444", "IsoftStone4" },
{ "005", "laoshulin5", "Man5", "25", "005555", "IsoftStone5" },
{ "006", "laoshulin6", "Man6", "26", "006666", "IsoftStone6" },
{ "007", "laoshulin7", "Man7", "27", "007777", "IsoftStone7" },
{ "008", "laoshulin8", "Man8", "28", "008888", "IsoftStone8" },
{ "009", "laoshulin9", "Man9", "29", "009999", "IsoftStone9" } };
private int index = -1;
public Object getFieldValue(JRField jrField) throws JRException {
Object value = null;
String fieldName = jrField.getName();
if ("pid".equals(fieldName)) {
value = data[index][0];
}
if ("name".equals(fieldName)) {
value = data[index][1];
}
if ("sex".equals(fieldName)) {
value = data[index][2];
}
if ("age".equals(fieldName)) {
value = data[index][3];
}
if ("password".equals(fieldName)) {
value = data[index][4];
}
if ("department".equals(fieldName)) {
value = data[index][5];
}
return value;
}
<s
分享到:
相关推荐
本文详细介绍了使用iReport和JasperReport开发柱状图的过程,包括确定数据源类型、开发数据源类、设计图表属性等步骤。作者分享了自己的实践经验,遇到的困难和解决方法,旨在帮助读者更好地理解和掌握iReport和...
- **配置步骤**:创建 JavaBean 类作为数据源,通过方法返回 Bean 对象列表。 #### 七、Swing 集成与展示 - **Swing 集成**:利用 Swing 组件(如 JTable 或 JList)展示报表数据。 - **报表预览**:在 Swing 界面...
在JasperReport中,JavaBean可以被用作数据源,每个Bean实例代表报表中的一行数据。 要实现自定义JavaBean数据源,你需要遵循以下步骤: 1. **创建JavaBean**: 首先,你需要定义一个Java类,包含你需要在报表中...
- 配置数据源、jasperReport相关的bean以及任何其他必要的配置信息。 #### 三、报表设计与数据填充 1. **报表设计** - 使用iReport工具设计报表模板,支持多种页面方向(如Portrait、Landscape)。 - 报表包含...
1. **数据源支持**:JasperReport支持多种数据源,包括但不限于数据库连接、Java Bean、XML文件、Java集合等。这意味着可以根据不同的应用场景选择最合适的数据源类型。 2. **报表设计灵活性**:支持设计普通报表、...
- 配置报表查询,选取JavaBean数据源并指定Bean类路径,读取Bean的属性。 - 设计报表布局,包括字段选择和样式设置。 - 编译报表,生成`.jasper`文件,这一步完成后,iReport的工作基本结束。 5. MyEclipse创建工程...
4. **DataSource**:讲解如何在报表中使用多种数据源,包括bean数组、bean集合或自定义数据源(只需实现`JRDataSource`接口)。 5. **Fonts**:展示不同字体的应用方法。 6. **Horizontal**:演示水平分栏报表的...
4. **生成报表**:在Action中,我们需要加载报表模板,设置数据源(通常是Action中的JavaBean集合),然后使用JasperReport API生成报表。这通常涉及以下步骤: ```java // 在ReportAction的execute方法中 Map ...
本文将深入探讨在WebWork环境下,如何使用JasperReport的子报告(subreport)功能进行套打,并以javabean作为数据源。 首先,我们需要了解什么是JasperReport的子报告。在JasperReport中,子报告是一个独立的报表...
在ireport中,我们可以将javabean类的实例作为数据源,通过字段映射,将bean的属性值绑定到报表模板的各个元素上。这样,当报表运行时,javabean中的数据会被自动填充到对应的字段中。 2. **PDF报表的制作**:...
5. 集成Spring和iBatis:配置Spring的ApplicationContext,定义Bean,设置数据源和SqlMapConfig。 6. 测试:通过浏览器发送请求,查看报表是否正确生成。 这个项目展示了如何在一个Java Web应用中有效地整合多种...
JasperReport是一款非常强大的报表生成工具,它支持多种数据源,如JDBC、XML等,并且可以输出PDF、HTML、XLS等多种格式的报表。Spring MVC则是一个基于Java的轻量级Web应用框架,用于构建可扩展的企业级应用。 ####...
总结来说,Spring MVC结合JasperReports可以实现高效的数据可视化,通过自定义数据源、报表渲染和iReport设计,开发者能够创建满足业务需求的报表系统。在整个过程中,关键在于理解报表数据源的构建、报表的填充和...
在网上找了很多ireport基于...对于bean中的子报表集合数据源怎么获取,始终不成功。现经过尝试终于弄明白是怎么回事了,上传以供分享。因从事IT工作,经常下载无积分,所有收一点点积分。祝大家研究顺利,共同进步!
它以其简洁的API、丰富的图表库以及对各种数据源的支持,成为了Java开发人员的首选报表解决方案之一。在“japerreport lib”这个压缩包中,我们看到主要包含的是JasperReport的相关库文件,这些文件是实现...
在Spring中,你可以创建一个Bean来封装数据源,并通过`JRDataSource`接口将其传递给报表引擎。 4. **报表的生成与导出**: 在Java代码中,你可以创建一个`JasperPrint`对象,用它来装载报表模板并填充数据。接着,...
- 在Java程序中加载.jasper文件,通过JasperFillManager.fillReport方法,使用JDBC数据源填充数据并生成报表。 通过以上步骤,可以有效地利用iReport进行报表设计,并结合Java程序实现报表的自动化生成。这对于...
JasperReport是一款开源的报表设计工具,它能够根据输入的数据源(如数据库查询结果、XML文档等)生成丰富的PDF、HTML、XLS等多种格式的报表。由于其高度可定制化的特点以及良好的扩展性,JasperReport被广泛应用于...
在`jasperReport生成PDF中文依赖包`中,可能包含`.jrxml`文件,这是iReport的报表定义文件,用于描述报表的布局和数据来源。在设计报表时,要确保字体设置支持中文,例如使用SimSun(宋体)或其他支持UTF-8编码的...
模板中可以包含静态文本、图像、表格、图表等元素,并通过填充数据源来生成实际的报表。 接下来,我们来看看如何在Spring3 MVC项目中整合JasperReport: 1. **配置依赖**:首先,在你的Maven项目中,你需要添加...