Jasper 报告与子报告使用 jsonql 作为数据源获取 JRExpressionEvalException 错误

问题描述

我很难弄清楚如何使用带有 jsonql 数据源的 jasper 报告正确创建子报告,所以我希望它可以帮助任何可能遇到同样问题的人。

我收到了 net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression for source text

解决方法

请按照以下步骤操作:

  1. 使用 dataSourceExpression

<subreport>(... other nodes)<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonQLDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("myList")]]></dataSourceExpression></subreport>

  1. 这个 "myList" 参数是将成为子报表的 Detail 的实习节点!在子报表 jrxml 文件中,将详细循环设置为您传递的子节点所在的位置,在 Dataset and Query Dialog 屏幕上,例如:outerNode.outerNodeOther.myList

  2. 我不需要传递参数!

  3. 要点是,在主报告 jrxml 的 net.sf.jasperreports.engine.data.JsonDataSource 中设置 net.sf.jasperreports.engine.data.JsonQLDataSource 配置时,我发现的所有教程都使用 <dataSourceExpression> 而不是 dataSourceExpression文件!

我希望这能节省您的时间!

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...