当前位置: 首页 > 知识库问答 >
问题:

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

令狐宣
2023-03-14

他们100%单独工作。

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

现在我将试着使这个例子尽可能简单。

{
  "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>
<?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>

共有1个答案

沈单弓
2023-03-14

report_connection传递给每个子报表部件没有任何效果。它的值将是非空的,仅适用于JDBC连接。所以没有理由通过。

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

>

  • 将数据适配器导出到与报表相同级别的文件,例如json_da.xml。
  • 将此属性添加到每个子报表中:

    <property name="net.sf.jasperreports.data.adapter" value="JSON_DA.xml"/>
    

  •  类似资料:
    • WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。

    • 有人能告诉我如何为子报表设置不同的数据适配器吗?我似乎找不到使用不同连接的示例/教程。本质上,我正在创建一个基于JavaBean集合的报告,我正在努力迭代一个嵌套的对象集合,所以我想我会创建一个子报告,该子报告使用不同的JavaBean集合数据适配器集到主报告中JavaBean对象所包含的ListArray对象(我希望这是清楚的?)。 因此,例如,我可能有对象供应商,它作为JavaBean集合数据

    • Autoconf 是一个用于生成可以自动地配置软件源代码包以适应多种Unix类系统的 shell脚本的工具。由Autoconf生成的配置脚本在运行的时候与Autoconf是无关的, 就是说配置脚本的用户并不需要拥有Autoconf。

    • 我已经搜索了很多,我是新的贾斯珀报告。我制作了一个简单的jasper报表项目(在jaspersoft studio中),该报表从dataAdapter.xml中获取数据,我将它创建为“JRDataSource的自定义实现”,并将其作为工厂类编写如下: 我的数据适配器名称只是“dataadapter.xml”,我的jasper报告文件名是:“caratula.jrxml”。下面是代码: 一切都很好,

    • 我目前正在从iReport 4.5.1迁移到Jaspersoft Studio 5.5。我注意到,当我在Jaspersft Studio中更改数据适配器时,它会将标记添加到报告的XML中。 我与不同的数据库有不同的连接,但我不喜欢进入记事本从XML中去掉。当我更改报表使用的数据适配器时,为什么总是出现此错误? 我最初查看了此问题,当我更改报表的连接(从开发数据库查看到临时数据库)时,它适用于一个连

    • Pika是360开源的类Redis存储系统。 Pika 是 360 DBA 和基础架构组联合开发的类 Redis 存储系统,完全支持 Redis 协议,用户不需要修改任何代码,就可以将服务迁移至 Pika。有维护 Redis 经验的 DBA 维护 Pika 不需要学习成本。 Pika 主要解决的是用户使用 Redis 的内存大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代