java ireport 子报表_ireport向子报表传递参数详解

最近些日子一直在研究报表生成的模块,用的是jasperreport,用ireport来设计报表模板,涉及到后台像子报表传递参数。 java

后台采用的是springmvc+spring+spring data jpa, spring

在后台向子报表传递map参数时的步骤是: express

1.在Parameters添加一个同后台传递到子报表map同名的parameter mvc

fb25c3b147154cb69e2ebc20.html

2.设置subMap的属性 spa

fb25c3b147154cb69e2ebc20.html

3.设置子报表的属性 设计

Parameters Map Expression属性填写$P{subMap}, code

(tips:此项只能用来向子报表传递普通的参数,好比string类型参数subparam) ip

Map subMap = new HashMap();

subMap.put("subparam", "subparam display");

Connection type属性选择Use a datasource expression 开发

(tips:此项向子报表传递数据集,即List类型等可迭代的集合类型参数) get

而后再Data Source Expression中填写

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(((Map)$P{subMap})

.get("persons1"))

个人后台代码是

Map mainMap = new HashMap();

List persons1 = (new PersonsFactory()).getPersons();

subMap.put("persons1", persons1);

mainMap.put("subMap", subMap);

fb25c3b147154cb69e2ebc20.html

其中困扰了我好久的一点就是,按照高洪岩写的《Jasperreports + ireport报表开发详解》书中data source expression属性填写的格式为

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{subMap}.get("persons1"))

如此填写的后果实jasper文件编译没法经过,会报错

fb25c3b147154cb69e2ebc20.html

说object类型没有get()方法,并且Parameters参数类型中没有map类型,

fb25c3b147154cb69e2ebc20.html

只能选择父类型object,因此我把Object参数$P{subMap}强制转换为Map,再去获取其中的List,

((Map)$P{subMap}).get("persons1")

编译不报错,成功编译完成,

fb25c3b147154cb69e2ebc20.html

子报表map中List也能够正常传递显示。

fb25c3b147154cb69e2ebc20.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iReport是一个开源的报表设计工具,它基于Java开发,可以用于创建、设计和生成各种类型的报表。下面是对iReport报表开发的详解: 1. 安装和配置:首先,你需要下载并安装iReport工具。一般来说,iReport可以与多种开发环境集成,比如Eclipse、NetBeans等。安装完成后,你需要配置iReport与你的开发环境的连接。 2. 数据源配置:在iReport中,你需要配置数据源,以便从数据库或其他数据源获取数据。你可以选择使用JDBC连接来配置数据库连接,或者使用其他自定义的数据源。 3. 报表设计:一旦数据源配置完成,你可以开始设计报表iReport提供了丰富的报表元素,比如文本框、图片、表格、图表等,可以根据需求进行布局和设计。你可以通过拖拽和放置元素来创建报表的布局,并设置元素的属性和样式。 4. 数据绑定:在报表设计过程中,你需要将数据源中的数据绑定到报表元素上。通过选择数据源字段并将其拖拽到相应的报表元素上,你可以将数据展示在报表中。你还可以使用表达式和函数来对数据进行计算和处理。 5. 样式和格式化:iReport提供了丰富的样式和格式化选项,可以对报表元素进行样式设置和数据格式化。你可以设置字体、颜色、边框等样式属性,以及日期、数字等数据的格式化规则。 6. 参数和变量:如果需要在报表中使用参数或变量,你可以在iReport中进行配置。参数可以用于动态过滤报表数据,而变量可以用于计算和存储

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值