Невозможно передать данные из основного отчета в подотчет в отчете - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь передать данные, которые доступны для основного отчета, также в подотчет с помощью выражения $ P {REPORT_DATA_SOURCE}, но ни один из них не передается в подотчет. Я знаю, так как я установил whenNoDataType = "AllSectionsNoDetail"

Коллекция, которую я читаю в переменных поля, я хочу повторно использовать эту же коллекцию в подотчете. Я перешел по этой ссылке и перепробовал все предложенные подходы, но ничего не работает. Как передать основной источник данных отчета в подотчет (JasperReports)?

Ниже приведен мой основной отчет jr xml. Он просто печатает параметр подотчета, переданный подотчету, без подробного раздела для подотчета

<?xml version="1.0" encoding="UTF-8"?>
<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="statement" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="30" rightMargin="30" topMargin="20" bottomMargin="20" uuid="628d791a-f6fa-4391-9205-ea1764e19925">
    <property name="ireport.scriptlethandling" value="0"/>
    <property name="ireport.encoding" value="UTF-8"/>
    <import value="net.sf.jasperreports.engine.*"/>
    <import value="java.util.*"/>
    <import value="java.text.SimpleDateFormat"/>
    <import value="net.sf.jasperreports.engine.data.*"/>

    <field name="subpostingid" class="java.lang.String">
        <fieldDescription><![CDATA[subpostingid]]></fieldDescription>
    </field>
    <field name="tgtaccountnumber" class="java.lang.String">
        <fieldDescription><![CDATA[tgtaccountnumber]]></fieldDescription>
    </field>
    <field name="contraaccountname" class="java.lang.String">
        <fieldDescription><![CDATA[contraaccountname]]></fieldDescription>
    </field>
    <field name="debit" class="java.lang.String">
        <fieldDescription><![CDATA[debit]]></fieldDescription>
    </field>

    <title>
        <band height="367" splitType="Stretch">
            <textField isBlankWhenNull="false">
                <reportElement key="textField-9" x="0" y="10" width="324" height="30" uuid="6a6eb0ed-f5f4-4212-922e-527f7c8de372"/>
                <textFieldExpression><![CDATA[$R{fundsTransferApprovals}]]></textFieldExpression>
            </textField>            
        </band>
    </title>
    <columnHeader>
        <band height="53" splitType="Stretch">
            <textField isBlankWhenNull="false">
                <reportElement key="textField-15" x="0" y="0" width="324" height="27" uuid="ef3e213b-e902-4fd6-92ef-c072e7676648"/>
                <textFieldExpression><![CDATA[$R{beneficiaryDetails}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="false">
                <reportElement key="textField-15" x="0" y="30" width="80" height="15" uuid="ef3e213b-e902-4fd6-92ef-c072e7676648"/>
                <textFieldExpression><![CDATA[$R{id}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="false">
                <reportElement key="textField-16" x="80" y="30" width="200" height="15" uuid="5c1562ba-e316-4d69-bfb9-690aa65c8ccb"/>
                <textFieldExpression><![CDATA[$R{beneficiaryName}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="false">
                <reportElement key="textField-17" x="280" y="30" width="140" height="15" uuid="f60d6a74-7ff1-4a6c-b5c4-17108b774e7f"/>
                <textFieldExpression><![CDATA[$R{beneficiaryAccount}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="false">
                <reportElement key="textField-18" x="420" y="30" width="113" height="15" uuid="74f307a6-533a-4be8-a340-7d2d8b36b6aa"/>
                <textFieldExpression><![CDATA[$R{amount}]]></textFieldExpression>
            </textField>
        </band>
    </columnHeader>
    <detail>
        <band height="33" splitType="Stretch">
            <printWhenExpression><![CDATA[java.lang.Boolean.valueOf($F{subpostingid} != null)]]></printWhenExpression>
            <textField pattern="" isBlankWhenNull="false">
                <reportElement key="textField" x="0" y="0" width="80" height="16" isRemoveLineWhenBlank="true" forecolor="#000000" uuid="b0dbca80-0f46-4e85-8e0f-551d143cad60"/>
                <textFieldExpression><![CDATA[$F{subpostingid}]]></textFieldExpression>
            </textField>
            <textField pattern="" isBlankWhenNull="false">
                <reportElement key="textField" x="80" y="0" width="200" height="16" forecolor="#000000" uuid="d772ae5d-52dd-46b1-a60d-67b92a7153e1"/>
                <textFieldExpression><![CDATA[$F{contraaccountname}]]></textFieldExpression>
            </textField>
            <textField pattern="" isBlankWhenNull="false">
                <reportElement key="textField" x="280" y="0" width="140" height="16" forecolor="#000000" uuid="cc617ff8-0649-4b20-bbbd-a082c29a5410"/>
                <textFieldExpression><![CDATA[$F{tgtaccountnumber}]]></textFieldExpression>
            </textField>
            <textField pattern="" isBlankWhenNull="false">
                <reportElement key="textField" x="420" y="0" width="114" height="16" forecolor="#000000" uuid="bbf7210c-0979-49dc-b213-629b10e17f1d"/>
                <textFieldExpression><![CDATA[$F{debit}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <summary>
        <band height="130" splitType="Stretch">
            <subreport>
                <reportElement x="0" y="0" width="500" height="100" uuid="361dc76f-623e-4683-97df-252ccda05faa"/>
                <subreportParameter name="headingtext">
                    <subreportParameterExpression><![CDATA[$R{listOfSignatories}]]></subreportParameterExpression>
                </subreportParameter>               

                <dataSourceExpression><![CDATA[($P{REPORT_DATA_SOURCE})]]></dataSourceExpression>
                <subreportExpression><![CDATA["C:\\path\\approvals_subreport.jasper"]]></subreportExpression>
            </subreport>
        </band>
    </summary>
</jasperReport>

Мой подотчет:

<?xml version="1.0" encoding="UTF-8"?>
<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="approvals_subreport" pageWidth="500" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="500" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="89712d9b-194d-4499-875a-fe91d1a14964">
    <property name="ireport.scriptlethandling" value="0"/>
    <property name="ireport.encoding" value="UTF-8"/>
    <import value="net.sf.jasperreports.engine.*"/>
    <import value="java.util.*"/>
    <import value="java.text.SimpleDateFormat"/>
    <import value="net.sf.jasperreports.engine.data.*"/>
    <parameter name="headingtext" class="java.lang.String" isForPrompting="false"/>
    <parameter name="column1text" class="java.lang.String" isForPrompting="false"/>
    <parameter name="column2text" class="java.lang.String" isForPrompting="false"/>
    <parameter name="column3text" class="java.lang.String" isForPrompting="false"/>

    <field name="username" class="java.lang.String">
        <fieldDescription><![CDATA[username]]></fieldDescription>
    </field>
    <field name="loginid" class="java.lang.String">
        <fieldDescription><![CDATA[loginid]]></fieldDescription>
    </field>
    <field name="approvaltime" class="java.lang.String">
        <fieldDescription><![CDATA[approvaltime]]></fieldDescription>
    </field>
    <title>
        <band height="31" splitType="Stretch">
            <textField isBlankWhenNull="false">
                <reportElement key="textField-10" x="0" y="0" width="400" height="30" uuid="71c2ef41-1675-47cf-8f40-0eaec10d047b"/>
                <textFieldExpression><![CDATA[$P{headingtext}]]></textFieldExpression>
            </textField>
        </band>
    </title>
    <columnHeader>
        <band height="17" splitType="Stretch">
            <textField isBlankWhenNull="false">
                <reportElement key="textField-15" x="0" y="0" width="130" height="15" uuid="ef3e213b-e902-4fd6-92ef-c072e7676648"/>
                <textFieldExpression><![CDATA[$P{column1text}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="false">
                <reportElement key="textField-16" x="130" y="0" width="230" height="15" uuid="5c1562ba-e316-4d69-bfb9-690aa65c8ccb"/>
                <textFieldExpression><![CDATA[$P{column2text}]]></textFieldExpression>
            </textField>
            <textField isBlankWhenNull="false">
                <reportElement key="textField-17" x="360" y="0" width="140" height="15" uuid="f60d6a74-7ff1-4a6c-b5c4-17108b774e7f"/>
                <textFieldExpression><![CDATA[$P{column3text}]]></textFieldExpression>
            </textField>
        </band>
    </columnHeader>
    <detail>
        <band height="50">
            <staticText>
                <reportElement x="26" y="10" width="100" height="30" uuid="173d8ef0-4a69-4661-b320-6a1e282be380"/>
                <text><![CDATA[text here]]></text>
            </staticText>
        </band>
    </detail>
</jasperReport>

Я попытался объявить мой основной источник данных отчета как

И используйте это в моем выражении подотчета

И получил ошибку:

ERROR p: default-threadpool; w: Idle 20200313 13:37:35 [ReportManager] ReportManager.generateReport : Errors were encountered when compiling report expressions class file:
1. The constructor JRXmlDataSource(Collection) is undefined
                value = new net.sf.jasperreports.engine.data.JRXmlDataSource(((java.util.Collection)field_approvals.getValue())); //$JR_EXPR_ID=45$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...