我想获得一个表中使用碧玉/ iReport的我的主要报告相同的数据来填充。 我怎样才能获得JSON来结转?
在编辑表格数据源我已经试过:
((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE})
new ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE})
$P{REPORT_DATA_SOURCE}
$P{REPORT_CONNECTION}
所有这些编译,但其中没有实际生成的表。 有任何想法吗? 有喜欢cloneDataSource()的JSON没有方法,这样有什么选择?
我的最终目标很简单:在JSON数据传递,并用它来生成一个图表,然后有显示相同信息的表格。 我已经工作了几天此,碧玉是给我一个困难时期。 请帮忙!
我是用子报表时有类似问题所困扰。 看来,JSON数据源得到由主报告消耗,所以你需要调用subDataSource()
得到一个新的数据源为您的子报表,也许对表,太-还没有测试过尚未虽然...
数据源表达式: ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource()
如果有人使用JasperReports的新的读书报告功能(版本6+可用),并要使用一个JsonDataSource
,这是通过JSON有效载荷的子报表的方式:
<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd">
<subreportParameter name="REPORT_DATA_SOURCE">
<subreportParameterExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource()]]></subreportParameterExpression>
</subreportParameter>
<subreportExpression><![CDATA["PROFILES_cover.jasper"]]></subreportExpression>
</p:subreportPart>
你也可以通过提供节点位置作为一个参数传递的JSON有效载荷的子集subDataSource(java.lang.String selectExpression)
方法。 例子:
.subDataSource("Northwind.Customers")
要么
.subDataSource("Northwind.Customers(Country == USA)")
只需添加数据源表达你的主要报告:
<subreport>
<reportElement x="-6" y="0" width="570" height="59" uuid="ac54a12b-8022-49a1-bc90-90cff664e3a1" />
<dataSourceExpression>
<![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("footer")]]>
</dataSourceExpression>
<subreportExpression>
<![CDATA["footer.jrxml"]]>
</subreportExpression>
</subreport>
它为我工作。 希望这将有助于。