`
eneasy
  • 浏览: 126431 次
  • 性别: 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 报表 过程

分享到:
评论

相关推荐

    ireport用list作为数据源.zip

    ireport用JRDataSource作为数据源案例源码,详细介绍请移步我主页查阅博客文章。初识ireport的同学可以参考本例子动手试试。 压缩包包含内容: 1.JRDataSource实现java源文件 2.jrxml报表文件

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

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

    ireport利用javabean做数据源实例

    简单明了利用javabean做数据源,实现ireport报表功能

    ireport数据源

    一个DataSource是Jasperreport获取数据以生成报表的源。这里有两种类型的DataSource:一种是JDBC Connection用来从关系型数据库里取数据;另外一种是扩展了JRDataSource接口的java object,这种类型的对象允许我们去...

    ireport开发文档

    18 Jrxml源代码和jasper文件: 18 数据源和打印格式: 22 版本兼容性: 23 表达式: 24 一个简单的程序: 25 4 报表结构 26 Bands 26 Title 27 Page header 27 Column header 27 ...

    iReport开发文档

    18 Jrxml源代码和jasper文件: 18 数据源和打印格式: 22 版本兼容性: 23 表达式: 24 一个简单的程序: 25 4 报表结构 26 Bands 26 Title 27 Page header 27 Column header 27 ...

    Jasper_Report用户手册

    5.3 Data Source(数据源) 5.4 报表查询(Report Query) 5.5 字段(Field) 字段名(Field Name) 字段类型(Field Class) 字段描述(Field Description) 5.6 变量(Variables) 变量名(Variable Name) 变量...

    Jasper Reports data provider for Remedy-开源

    jaspars提供了与Remedy AR系统兼容的Jasper Reports定制数据源(JRDataSource)。 有关更多信息和使用说明,请参见http://www.mypathworks.com/arslist/Public?id=8ae4b6940c259f32010c3707fbae01bf。

    iReport-JasperReports报表开发指南

    10.3 The JRDataSource Interface............................................................................................63 10.4 JavaBean set datasource.................................................

Global site tag (gtag.js) - Google Analytics