我在报告中使用Json数据源。 json记录包含一些字段以及我需要迭代的文章列表。所以json记录看起来如下:
{"client":"John Doe","invoiceNumber":"INV001",
"articles":[{"name":"Article1","price":40.00},{"name":"Article2","price":50.00}]}
我在报告中为这些文章添加了一个数据集,然后为此数据集添加了一个列表元素来迭代该集合。但这些文章永远不会在报告生成上进行迭代。我通过jasper库运行报告,发现我在JsonQueryExecuter.createDatasource&#34中收到警告;没有提供JSON源"。但是当我创建我的列表时,我指定了#34;使用相同的连接来填充列表"。有人可以告诉我这里的问题是什么吗?
此处参考的是一份不会重复文章的测试报告:
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="81afe112-ee1b-4443-8d1c-cb6d9ab95dd8">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Json Test"/>
<subDataset name="Articles" uuid="fa853735-039f-482e-b16b-fad34f35c354">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="Json Test"/>
<queryString language="json">
<![CDATA[articles]]>
</queryString>
<field name="name" class="java.lang.String">
<fieldDescription><![CDATA[name]]></fieldDescription>
</field>
<field name="price" class="java.lang.String">
<fieldDescription><![CDATA[price]]></fieldDescription>
</field>
<group name="name">
<groupExpression><![CDATA[$F{name}]]></groupExpression>
</group>
<group name="price">
<groupExpression><![CDATA[$F{price}]]></groupExpression>
</group>
</subDataset>
<queryString language="json">
<![CDATA[articles]]>
</queryString>
<field name="name" class="java.lang.String">
<fieldDescription><![CDATA[name]]></fieldDescription>
</field>
<field name="price" class="java.lang.String">
<fieldDescription><![CDATA[price]]></fieldDescription>
</field>
<title>
<band height="79" splitType="Stretch">
<componentElement>
<reportElement x="0" y="10" width="253" height="36" uuid="c3237c70-6b2e-43e3-aa21-5092d8b91afc"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="Articles" uuid="822fffb6-6a34-442e-a9dd-01fcbc25fbdc">
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
</datasetRun>
<jr:listContents height="36" width="253">
<textField>
<reportElement x="10" y="0" width="100" height="30" uuid="07e3ff2a-3832-4b06-9275-cb1ee8e51cfe">
<property name="local_mesure_unitwidth" value="pixel"/>
<property name="com.jaspersoft.studio.unit.width" value="px"/>
<property name="local_mesure_unitheight" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="120" y="3" width="100" height="30" uuid="d58f36cb-41eb-4399-a0d9-a181f02c4931">
<property name="com.jaspersoft.studio.unit.width" value="px"/>
<property name="com.jaspersoft.studio.unit.height" value="px"/>
</reportElement>
<textFieldExpression><![CDATA[$F{price}]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>
</band>
</title>
</jasperReport>