自定义
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
报表
过程
》
分享到:
相关推荐
4. **编写数据源代码**: 创建一个类来返回JavaBean集合,通常会实现`JRDataSource`接口。在`next()`方法中返回集合中的下一个Bean,`getFieldValue()`方法根据字段名返回Bean的属性值。 5. **编译和运行报表**: ...
- **实现方式**:通过实现 JRDataSource 接口,开发者可以自定义数据源,包括但不限于 XML 文件、JavaBean 集合等。 - **应用场景**:适用于非关系型数据来源,例如 XML 文档、CSV 文件、Java 对象集合等。 #### 五...
总的来说,通过使用JRDataSource,我们可以灵活地在后台代码中封装JasperReport,将各种数据源的数据填充到报表中。这种方式允许我们在不改变报表设计的情况下,轻松地更换数据源或调整数据结构,极大地提高了报表...
在ireport中,我们可以自定义数据源类,使其符合`JRDataSource` 接口。`JRDataSource` 提供了两个主要方法:`next()` 和 `getFieldValue(JRField field)`。`next()` 方法用于在数据集中移动到下一个记录,而 `...
- **Custom DataSource**:允许用户自定义数据源,通过编写Java类实现JRDataSource接口。 - **JRDataSourceProvider**:为特定的数据访问需求提供预定义的解决方案。 - **Hibernate DataSource**:支持HQL...
本知识点主要探讨的是如何在iReport中使用JavaBean作为数据源来填充表格(Table)组件。我们将深入理解这个过程,并结合提供的资源进行详细阐述。 1. **JavaBean数据源的原理** JavaBean是一种符合特定规范的Java...
【标题解析】:“ireport利用javabean做数据源实例”这一标题表明我们将探讨如何使用iReport工具,一个用于设计JasperReports报表的开源工具,通过JavaBean对象作为数据源来创建和展示报表。JavaBean是一种符合特定...
对于基于JavaBean集合的数据源,需要自定义JRDataSource的实现,确保next()方法能够正确遍历数据集,getFieldValue()方法能够根据字段名返回对应的数据。 总的来说,JasperReport通过其灵活的报表设计、丰富的数据...
- 在数据源管理器中添加名为`ds_pie`和`ds_serial`的参数,类型设置为`net.sf.jasperreports.engine.JRDataSource`。 **2.1.4 配置JavaBean数据源** - **添加DataSet**:通过右键菜单添加名为`ds_pie`的DataSet。 -...
除了传统的数据库连接之外,JasperReports还支持多种其他数据源,如空数据源、Java对象、`java.util.Map`、`TableModel`、XML、CSV文件以及自定义数据源等。通过这些数据源,用户可以在没有数据库连接的情况下设计和...
3. **JRDataSource**: 报表数据源接口,实现该接口可以提供报表所需的数据。 4. **JasperPrint**: 表示填充后的报表实例,包含所有数据和样式信息。 5. **JasperFillManager**: 负责报表的填充操作。 6. **...
- 可以通过实现JRDataSource接口来创建自定义的数据源。 - 这样可以更加灵活地满足特殊需求。 **用iReport实现个性化的JRDataSource:** - iReport提供了一些工具,可以帮助用户实现自定义的数据源。 - 例如,可以...
这可以通过创建`JRDataSource`对象完成,它可以是JDBC数据源、Java集合或其他自定义数据源。批量打印意味着处理大量数据,所以数据源的准备和管理是关键。 3. **报表渲染**:填充数据后,使用`JasperFillManager....
- **JRDataSource**:自定义数据源接口,可以根据需求实现自己的数据提供方式。 **3. 使用JasperReport的关键步骤** 1. **设计报表**:使用iReport或Jaspersoft Studio设计报表模板,保存为`.jrxml`文件。 2. **...
总结来说,Spring MVC结合JasperReports可以实现高效的数据可视化,通过自定义数据源、报表渲染和iReport设计,开发者能够创建满足业务需求的报表系统。在整个过程中,关键在于理解报表数据源的构建、报表的填充和...
在实际使用中,JasperReport通过实现一些接口,可以方便地集成到自定义的数据源中,允许开发者根据需要从各种数据源获取数据。例如,通过实现`JRDataSource`接口,可以连接到自定义的数据集,无论是数据库查询结果...
- **实现一个新的JRDataSource/用iReport实现个性化的JRDataSource/JavaBeanExtended数据源**:自定义数据源的具体步骤。 #### 十一、国际化 - **ResourceBundleBaseName**:设置资源束的基名,以便进行多语言支持...
3. 数据源和自定义数据源:数据源是报表设计的关键,JasperReport支持多种数据源,包括JRDataSource接口实现的自定义数据源。在实际项目中,你可以根据需求连接数据库、CSV文件或其他数据提供者。 4. 国际化(I18N...