В jasper Studio из url, как прочитать приведенный ниже формат json fileds - PullRequest
0 голосов
/ 08 июня 2018
{
    "name": "Request Count By INDUSTRY",
    "columnMetadata": [{
        "name": "INDUSTRY",
        "type": "text"
    }, {
        "name": "COUNT",
        "type": "number"
    }],
    "data": [
        ["Aerospace and Defense", 2],
        ["Automotive", 11],
        ["Chemicals", 25],
        ["Communications", 29],
        ["Consumer Goods", 17],
        ["Education and Research", 8],
        ["Engineering and Construction", 4],
        ["Financial Services", 4],
        ["Health Care", 3],
        ["High Technology", 1],
        ["Industrial Manufacturing", 1]
    ]
}

Из URL мы должны преобразовать как поля, можете ли вы предложить, как читать как поля.Благодарю.Не удается прочитать поля из URL.Это дает следующее: Как решить эту проблему?

Предварительный просмотр данных при чтении полей из URL Но мое требование состоит в том, чтобы заполнять данные так же, как вы

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете обойтись двумя списками, такими как:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.5.1.final using JasperReports Library version 6.5.1  -->
<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="Report" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="5fe08cd4-afa3-4187-a165-22eeb0ca64a3">
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="YourDataAdapter.xml"/>
    <subDataset name="ColumnMetaDataset" uuid="14ad504f-4c68-443a-b9ad-78f301ac210b">
        <queryString language="json">
            <![CDATA[columnMetadata]]>
        </queryString>
        <field name="name" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="name"/>
        </field>
    </subDataset>
    <subDataset name="ColumnDataDataset" uuid="bbe706e9-3c2d-46ed-bc51-995176f46278">
        <queryString language="json">
            <![CDATA[data]]>
        </queryString>
        <field name="industry" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="[0]"/>
        </field>
        <field name="count" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="[1]"/>
        </field>
    </subDataset>
    <queryString language="JSON">
        <![CDATA[]]>
    </queryString>
    <field name="reportName" class="java.lang.String">
        <property name="net.sf.jasperreports.json.field.expression" value="name"/>
    </field>
    <background>
        <band splitType="Stretch"/>
    </background>
    <title>
        <band height="79" splitType="Stretch">
            <textField>
                <reportElement x="80" y="24" width="400" height="30" uuid="4c1460f9-a8b3-483e-ba78-81a0112df4d0"/>
                <textElement textAlignment="Center" verticalAlignment="Justified">
                    <font size="16"/>
                </textElement>
                <textFieldExpression><![CDATA[$F{reportName}]]></textFieldExpression>
            </textField>
        </band>
    </title>
    <detail>
        <band height="60" splitType="Stretch">
            <componentElement>
                <reportElement x="20" y="0" width="530" height="30" uuid="80813f72-14ac-4b0a-9832-245572d9c7ef"/>
                <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" printOrder="Horizontal">
                    <datasetRun subDataset="ColumnMetaDataset" uuid="cf7939cd-dc1e-4d98-8137-0bd0a5a460f5">
                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("columnMetadata")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:listContents height="30" width="200">
                        <textField>
                            <reportElement mode="Opaque" x="0" y="0" width="200" height="30" backcolor="#CFFAF4" uuid="ea696e4d-d4a5-4b96-b010-00bd0b74b4f8"/>
                            <textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
                        </textField>
                    </jr:listContents>
                </jr:list>
            </componentElement>
            <componentElement>
                <reportElement x="20" y="30" width="530" height="30" uuid="56b93e60-fd4f-4cd7-b8ae-bfbcf5f74f90"/>
                <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" printOrder="Vertical">
                    <datasetRun subDataset="ColumnDataDataset" uuid="d3b0798a-6dfe-4e4e-acfe-0611ca3a4f0f">
                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("data")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:listContents height="30" width="530">
                        <textField>
                            <reportElement x="0" y="0" width="200" height="30" uuid="d0aa8d52-2a45-4da7-b0df-83182adc8a6a"/>
                            <textFieldExpression><![CDATA[$F{industry}]]></textFieldExpression>
                        </textField>
                        <textField>
                            <reportElement x="200" y="0" width="200" height="30" uuid="7a95aa27-0ff0-4d96-a8a8-84fdd32c0c1d"/>
                            <textFieldExpression><![CDATA[$F{count}]]></textFieldExpression>
                        </textField>
                    </jr:listContents>
                </jr:list>
            </componentElement>
        </band>
    </detail>
</jasperReport>

Со следующим выводом: enter image description here

...