问题描述
我很难弄清楚如何使用带有 jsonql 数据源的 jasper 报告正确创建子报告,所以我希望它可以帮助任何可能遇到同样问题的人。
我收到了 net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text
解决方法
请按照以下步骤操作:
- 使用
dataSourceExpression
:
<subreport>(... other nodes)<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonQLDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("myList")]]></dataSourceExpression></subreport>
-
这个
"myList"
参数是将成为子报表的Detail
的实习节点!在子报表 jrxml 文件中,将详细循环设置为您传递的子节点所在的位置,在Dataset and Query Dialog
屏幕上,例如:outerNode.outerNodeOther.myList
-
我不需要传递参数!
-
要点是,在主报告 jrxml 的
net.sf.jasperreports.engine.data.JsonDataSource
中设置net.sf.jasperreports.engine.data.JsonQLDataSource
配置时,我发现的所有教程都使用<dataSourceExpression>
而不是dataSourceExpression
文件!
我希望这能节省您的时间!