Jasper reports Jaspersoft studio json数据适配器手册或子报表文档为空

Jasper reports Jaspersoft studio json数据适配器手册或子报表文档为空,jasper-reports,jaspersoft-studio,Jasper Reports,Jaspersoft Studio,我正在尝试做一些非常简单的事情,但是在过去几天的搜索中我找不到答案,我需要一些帮助 我想做什么: 我有多个报告,所以有些是横向的,有些只是静态文本,有些是表格,有些是表格和变量,我想把它们合并在一起 他们100%单独工作 尝试用子报告制作主报告不起作用,尝试书本方法不起作用,我总是得到文档是空的,或者如果我尝试操纵数据查询,我会得到各种奇怪的东西 现在,我将尝试使这个示例尽可能简单 JSON数据:(新数据适配器) { "name": "Sample Name", "people":[

我正在尝试做一些非常简单的事情,但是在过去几天的搜索中我找不到答案,我需要一些帮助

我想做什么: 我有多个报告,所以有些是横向的,有些只是静态文本,有些是表格,有些是表格和变量,我想把它们合并在一起

他们100%单独工作

尝试用子报告制作主报告不起作用,尝试书本方法不起作用,我总是得到文档是空的,或者如果我尝试操纵数据查询,我会得到各种奇怪的东西

现在,我将尝试使这个示例尽可能简单

JSON数据:(新数据适配器)

{
  "name": "Sample Name",
  "people":[
    {
      "who": "Person 1"
    },
    {
      "who": "Person 2"
    },
    {
      "who": "Person 3"
    }
  ]
}
图书主报告:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0  -->
<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="Empty_Book" pageWidth="595" pageHeight="842" sectionType="Part" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30" uuid="d2716064-8ae4-40cf-a575-33afba400e3a">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="New Data Adapter "/>
    <property name="net.sf.jasperreports.print.create.bookmarks" value="true"/>
    <queryString language="json">
        <![CDATA[]]>
    </queryString>
    <detail>
        <part uuid="69d6ca13-26f6-425f-bff9-395c5b9c183b">
            <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_CONNECTION">
                    <subreportParameterExpression><![CDATA[$P{REPORT_CONNECTION}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportExpression><![CDATA["Blank_A4_2.jasper"]]></subreportExpression>
            </p:subreportPart>
        </part>
        <part uuid="055c9f89-88b4-4270-b6ef-addb2eac3e56">
            <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_CONNECTION">
                    <subreportParameterExpression><![CDATA[$P{REPORT_CONNECTION}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportExpression><![CDATA["Blank_A4_Landscape_1.jasper"]]></subreportExpression>
            </p:subreportPart>
        </part>
    </detail>
</jasperReport>

Blank_A4_2.jrxml

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0  -->
<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_2" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="bd2bd70c-5a0d-4c3f-b81d-4d5d7731153d">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="New Data Adapter "/>
    <queryString language="json">
        <![CDATA[]]>
    </queryString>
    <field name="name" class="java.lang.String">
        <property name="net.sf.jasperreports.json.field.expression" value="name"/>
        <fieldDescription><![CDATA[name]]></fieldDescription>
    </field>
    <background>
        <band splitType="Stretch"/>
    </background>
    <detail>
        <band height="125" splitType="Stretch">
            <textField>
                <reportElement x="150" y="30" width="100" height="30" uuid="eef5f1dc-3d96-4008-8321-ef0be92d42d4"/>
                <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="50" y="30" width="100" height="30" uuid="cbe6173f-5399-45ec-926b-ff6f48b4fb0c"/>
                <text><![CDATA[name]]></text>
            </staticText>
        </band>
    </detail>
</jasperReport>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0  -->
<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_Landscape_1" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="62f06d09-42b5-4471-baa5-5aed60cc5fc4">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="New Data Adapter "/>
    <subDataset name="Dataset1" uuid="eb54ec0d-0c60-44af-8476-e44f40560dee">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="New Data Adapter "/>
        <queryString language="json">
            <![CDATA[people]]>
        </queryString>
        <field name="who" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="who"/>
            <fieldDescription><![CDATA[who]]></fieldDescription>
        </field>
    </subDataset>
    <queryString language="JSON">
        <![CDATA[]]>
    </queryString>
    <field name="name" class="java.lang.String">
        <property name="net.sf.jasperreports.json.field.expression" value="name"/>
        <fieldDescription><![CDATA[name]]></fieldDescription>
    </field>
    <background>
        <band splitType="Stretch"/>
    </background>
    <columnHeader>
        <band height="175">
            <textField>
                <reportElement x="132" y="81" width="100" height="30" uuid="5cce1f44-2a8b-42ad-a03d-4c294f02d31c"/>
                <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
            </textField>
        </band>
    </columnHeader>
    <detail>
        <band height="140" splitType="Stretch">
            <componentElement>
                <reportElement x="110" y="45" width="200" height="40" uuid="75a06812-f9a0-4b0f-9a08-efec60d0b555"/>
                <jr:table 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="Dataset1" uuid="acd62160-c07c-4c00-b6b4-9ef001d1585d">
                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("people")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:column width="200" uuid="253a610c-a780-4690-8cce-8a03597ef016">
                        <jr:detailCell height="30">
                            <textField>
                                <reportElement x="0" y="0" width="200" height="30" uuid="910a7e24-c02b-4b21-8c9d-6a3dfda21794"/>
                                <textFieldExpression><![CDATA[$F{who}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
    </detail>
</jasperReport>

空白\u A4\u横向\u 1.jrxml

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0  -->
<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_2" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="bd2bd70c-5a0d-4c3f-b81d-4d5d7731153d">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="New Data Adapter "/>
    <queryString language="json">
        <![CDATA[]]>
    </queryString>
    <field name="name" class="java.lang.String">
        <property name="net.sf.jasperreports.json.field.expression" value="name"/>
        <fieldDescription><![CDATA[name]]></fieldDescription>
    </field>
    <background>
        <band splitType="Stretch"/>
    </background>
    <detail>
        <band height="125" splitType="Stretch">
            <textField>
                <reportElement x="150" y="30" width="100" height="30" uuid="eef5f1dc-3d96-4008-8321-ef0be92d42d4"/>
                <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="50" y="30" width="100" height="30" uuid="cbe6173f-5399-45ec-926b-ff6f48b4fb0c"/>
                <text><![CDATA[name]]></text>
            </staticText>
        </band>
    </detail>
</jasperReport>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.6.0.final using JasperReports Library version 6.6.0  -->
<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_Landscape_1" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="62f06d09-42b5-4471-baa5-5aed60cc5fc4">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="New Data Adapter "/>
    <subDataset name="Dataset1" uuid="eb54ec0d-0c60-44af-8476-e44f40560dee">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="New Data Adapter "/>
        <queryString language="json">
            <![CDATA[people]]>
        </queryString>
        <field name="who" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="who"/>
            <fieldDescription><![CDATA[who]]></fieldDescription>
        </field>
    </subDataset>
    <queryString language="JSON">
        <![CDATA[]]>
    </queryString>
    <field name="name" class="java.lang.String">
        <property name="net.sf.jasperreports.json.field.expression" value="name"/>
        <fieldDescription><![CDATA[name]]></fieldDescription>
    </field>
    <background>
        <band splitType="Stretch"/>
    </background>
    <columnHeader>
        <band height="175">
            <textField>
                <reportElement x="132" y="81" width="100" height="30" uuid="5cce1f44-2a8b-42ad-a03d-4c294f02d31c"/>
                <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
            </textField>
        </band>
    </columnHeader>
    <detail>
        <band height="140" splitType="Stretch">
            <componentElement>
                <reportElement x="110" y="45" width="200" height="40" uuid="75a06812-f9a0-4b0f-9a08-efec60d0b555"/>
                <jr:table 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="Dataset1" uuid="acd62160-c07c-4c00-b6b4-9ef001d1585d">
                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("people")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:column width="200" uuid="253a610c-a780-4690-8cce-8a03597ef016">
                        <jr:detailCell height="30">
                            <textField>
                                <reportElement x="0" y="0" width="200" height="30" uuid="910a7e24-c02b-4b21-8c9d-6a3dfda21794"/>
                                <textFieldExpression><![CDATA[$F{who}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>
        </band>
    </detail>
</jasperReport>


在发布之前测试了所有文件,它们单独工作,我没有要发送到子报表的参数,我尝试在数组上循环,但无论我做什么,我始终得到的文档都不会是空的。

报表连接传递到每个子报表部分没有任何效果。它的值仅对于JDBC连接是非空的。所以没有理由通过它

通过将每个子报表绑定到数据适配器文件,可以运行安装程序:

  • 将数据适配器导出到与报表处于同一级别的文件,例如JSON_DA.xml
  • 将此属性添加到每个子报告:

    <property name="net.sf.jasperreports.data.adapter" value="JSON_DA.xml"/>
    
    
    
    (这也可以通过在“报告属性”选项卡中设置默认数据适配器来实现)

  • 重新编译每个子报表,然后再次预览主报表


  • 所有这些都是必要的,因为JasperSoft Studio不会在运行时将数据适配器注入每个子报表。它仅在通过自动设置
    com.jaspersoft.studio.data.defaultdataadapter
    属性单独运行(预览)每个报表时注入它。

    重新编译的步骤非常重要。