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

自定义JRDataSource数据源

阅读更多


自定义 JRDataSource 数据源

如有需要可以自定义 JRDataSource 数据源,比如要在 JTable 控件中显示又想使用 jasperreports 中使用 , 可以让 JTable 的数据源适配 JRDataSource, 只需要实现 JRDataSource 接口即可。

创建 DailySalesDataSource.java, 这是报表的数据源。这个类实现了 jasperreports 中提供的数据源接口 JRDataSource, 实现其中的两个方法 :next() getFieldValue(JRField field)


import java.util.List;

import net.sf.jasperreports.engine.JRDataSource;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JRField;


public class DailySalesDataSource implements JRDataSource

{


private List<Object> data ;

private int index = -1;


public DailySalesDataSource(List<Object> data)

{

this . data = data;

}


/**

* 实现了 JRDataSource 中的方法.判断是否还有下一个.

*/

public boolean next() throws JRException

{

index ++;

return ( index < data .size());

}


/**

* 实现了 JRDataSource 中的方法.

* @param field 是对应报表中的要填充的字段的名称.

*/

public Object getFieldValue(JRField field) throws JRException

{

String fieldName = field.getName();

Object obj = data .get( index );

try

{

java.lang.reflect.Field objField = obj.getClass().getDeclaredField(fieldName);

if (objField != null )

{

objField.setAccessible( true );

return objField.get(obj);

}

}

catch (Exception e)

{


e.printStackTrace();

}

return null ;


}

}


创建工厂类,生成 ireport 数据源

import java.util.ArrayList;

import java.util.List;


import net.sf.jasperreports.engine.JRDataSource;


public class DailySalesDataSourceFactory

{

// 为了在 ireport 中能够测试,必须使用 static 方法

public static JRDataSource createDataSource()

{

// 数据源的生成,通常调用 dao 操作

List<Object> data = new ArrayList<Object>();

for ( int i = 0; i < 100; i++)

{

data.add( new DailySales( " 货号 " + i, " 产品 " + i, i, i * 100));

}

return new DailySalesDataSource(data);

}

}

ireport 菜单" Data "中选择” Connection/Data sources”, 点击在弹出框中的 new 按钮增加一个 custom JRDataSource 数据源 .


设置活动连接.在菜单" Data "中选择” Set Active Connection”.

Report Query , 在菜单" Data "中选择” Report Query”, 填写 javabean

相关步骤见图示 ireport 中使用 javabean 作数据源开发 基于 jasperreports 报表 过程

分享到:
评论

相关推荐

    jasperReport自定义javabean数据源实例

    4. **编写数据源代码**: 创建一个类来返回JavaBean集合,通常会实现`JRDataSource`接口。在`next()`方法中返回集合中的下一个Bean,`getFieldValue()`方法根据字段名返回Bean的属性值。 5. **编译和运行报表**: ...

    ireport数据源文档

    - **实现方式**:通过实现 JRDataSource 接口,开发者可以自定义数据源,包括但不限于 XML 文件、JavaBean 集合等。 - **应用场景**:适用于非关系型数据来源,例如 XML 文档、CSV 文件、Java 对象集合等。 #### 五...

    JasperReport 后台 代码 封装,采用JRDataSource方式

    总的来说,通过使用JRDataSource,我们可以灵活地在后台代码中封装JasperReport,将各种数据源的数据填充到报表中。这种方式允许我们在不改变报表设计的情况下,轻松地更换数据源或调整数据结构,极大地提高了报表...

    ireport利用javabean做数据源.docx

    在ireport中,我们可以自定义数据源类,使其符合`JRDataSource` 接口。`JRDataSource` 提供了两个主要方法:`next()` 和 `getFieldValue(JRField field)`。`next()` 方法用于在数据集中移动到下一个记录,而 `...

    ireport数据源

    - **Custom DataSource**:允许用户自定义数据源,通过编写Java类实现JRDataSource接口。 - **JRDataSourceProvider**:为特定的数据访问需求提供预定义的解决方案。 - **Hibernate DataSource**:支持HQL...

    ireport中table使用javaBean数据源

    本知识点主要探讨的是如何在iReport中使用JavaBean作为数据源来填充表格(Table)组件。我们将深入理解这个过程,并结合提供的资源进行详细阐述。 1. **JavaBean数据源的原理** JavaBean是一种符合特定规范的Java...

    ireport利用javabean做数据源实例

    【标题解析】:“ireport利用javabean做数据源实例”这一标题表明我们将探讨如何使用iReport工具,一个用于设计JasperReports报表的开源工具,通过JavaBean对象作为数据源来创建和展示报表。JavaBean是一种符合特定...

    JasperReport报表设计总结

    对于基于JavaBean集合的数据源,需要自定义JRDataSource的实现,确保next()方法能够正确遍历数据集,getFieldValue()方法能够根据字段名返回对应的数据。 总的来说,JasperReport通过其灵活的报表设计、丰富的数据...

    ireport报表详细操作手册

    - 在数据源管理器中添加名为`ds_pie`和`ds_serial`的参数,类型设置为`net.sf.jasperreports.engine.JRDataSource`。 **2.1.4 配置JavaBean数据源** - **添加DataSet**:通过右键菜单添加名为`ds_pie`的DataSet。 -...

    jasperReport资料文档5

    除了传统的数据库连接之外,JasperReports还支持多种其他数据源,如空数据源、Java对象、`java.util.Map`、`TableModel`、XML、CSV文件以及自定义数据源等。通过这些数据源,用户可以在没有数据库连接的情况下设计和...

    Jasperreport资料

    3. **JRDataSource**: 报表数据源接口,实现该接口可以提供报表所需的数据。 4. **JasperPrint**: 表示填充后的报表实例,包含所有数据和样式信息。 5. **JasperFillManager**: 负责报表的填充操作。 6. **...

    IReport中文教程

    - 可以通过实现JRDataSource接口来创建自定义的数据源。 - 这样可以更加灵活地满足特殊需求。 **用iReport实现个性化的JRDataSource:** - iReport提供了一些工具,可以帮助用户实现自定义的数据源。 - 例如,可以...

    japser实现批量打印

    这可以通过创建`JRDataSource`对象完成,它可以是JDBC数据源、Java集合或其他自定义数据源。批量打印意味着处理大量数据,所以数据源的准备和管理是关键。 3. **报表渲染**:填充数据后,使用`JasperFillManager....

    jasperreport帮助文档

    - **JRDataSource**:自定义数据源接口,可以根据需求实现自己的数据提供方式。 **3. 使用JasperReport的关键步骤** 1. **设计报表**:使用iReport或Jaspersoft Studio设计报表模板,保存为`.jrxml`文件。 2. **...

    spring MVC Web应用中集成Jasper报表工具

    总结来说,Spring MVC结合JasperReports可以实现高效的数据可视化,通过自定义数据源、报表渲染和iReport设计,开发者能够创建满足业务需求的报表系统。在整个过程中,关键在于理解报表数据源的构建、报表的填充和...

    JasperReport用户手册

    在实际使用中,JasperReport通过实现一些接口,可以方便地集成到自定义的数据源中,允许开发者根据需要从各种数据源获取数据。例如,通过实现`JRDataSource`接口,可以连接到自定义的数据集,无论是数据库查询结果...

    iReport技术手册

    - **实现一个新的JRDataSource/用iReport实现个性化的JRDataSource/JavaBeanExtended数据源**:自定义数据源的具体步骤。 #### 十一、国际化 - **ResourceBundleBaseName**:设置资源束的基名,以便进行多语言支持...

    Jasperreport+ireport 实践操作及web应用

    3. 数据源和自定义数据源:数据源是报表设计的关键,JasperReport支持多种数据源,包括JRDataSource接口实现的自定义数据源。在实际项目中,你可以根据需求连接数据库、CSV文件或其他数据提供者。 4. 国际化(I18N...

Global site tag (gtag.js) - Google Analytics