JSON как subDataSource в отчете Jasper - PullRequest
1 голос
/ 22 апреля 2020

возможно ли использовать JSON в качестве моего subDataSource, когда основным источником данных в отчете jasper является SQL? Выдает ошибку: Error evaluating expression for source text: ((net.sf.jasperreports.engine.data.JsonDataSource) $P).subDataSource("kontrolaOpatreni")

Целый младший xml довольно длинный, я даю только фрагменты кода. Определение JSON набор данных:

    <subDataset name="KontrolZjisteniOpatreni" uuid="920f605e-7cc4-4af4-9777-9f92136beea3">
        <property name="com.jaspersoft.studio.data.defaultdataadapter" value="protokolOKontrole"/>
        <queryString language="json">
            <![CDATA[kontrolaOpatreni]]>
        </queryString>
        <field name="stavVeci" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="stavVeci"/>
        </field>
        <field name="zakon" class="java.lang.String">
            <property name="net.sf.jasperreports.json.field.expression" value="zakon"/>
        </field>
    </subDataset>

Определение таблицы с использованием JSOPN dataSource:

<componentElement>
                <reportElement positionType="Float" x="10" y="10" width="543" height="15" uuid="a9ec6c15-f338-4d78-b822-d2e3943b40c7">
                    <property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
                    <property name="com.jaspersoft.studio.table.style.table_header" value="Table 3_TH"/>
                    <property name="com.jaspersoft.studio.table.style.column_header" value="Table 3_CH"/>
                    <property name="com.jaspersoft.studio.table.style.detail" value="Table 3_TD"/>
                    <property name="net.sf.jasperreports.export.headertoolbar.table.name" value="kontrola opatreni"/>
                </reportElement>
                <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="KontrolZjisteniOpatreni" uuid="a149c9c6-a485-48d9-81bf-6f968c31b4ec">
                        <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource) $P{REPORT_DATA_SOURCE}).subDataSource("kontrolaOpatreni")]]></dataSourceExpression>
                    </datasetRun>
                    <jr:column width="543" uuid="99799c27-0052-4c04-a835-806a06fe6b7b">
                        <property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
                        <jr:detailCell height="15">
                            <textField isStretchWithOverflow="true">
                                <reportElement positionType="Float" stretchType="RelativeToTallestObject" x="0" y="0" width="543" height="15" isPrintWhenDetailOverflows="true" uuid="32b653fa-febb-440f-a490-a22775452781"/>
                                <textElement textAlignment="Left" verticalAlignment="Middle" markup="html">
                                    <font fontName="Times New Roman"/>
                                    <paragraph leftIndent="4"/>
                                </textElement>
                                <textFieldExpression><![CDATA[$F{stavVeci} + "zákon: " + $F{zakon}]]></textFieldExpression>
                            </textField>
                        </jr:detailCell>
                    </jr:column>
                </jr:table>
            </componentElement>

Я знаю, что можно использовать SQL в качестве subDataSource, когда основным источником данных является JSON, но мне нужно использовать его по-другому.

Я использую TIBCO Jaspersoft® Studio 6.6.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...