Связывание параметров отчета с параметрами набора подданных в отчетах Jasper

#jasper-reports #jaspersoft-studio

#jasper-отчеты #jaspersoft-studio

Вопрос:

Я просмотрел много статей и статей, но многие из них кажутся старыми или трудными для чтения.

Я создал отчет с кучей подпараметров. я сохранил это, создал кучу элементов управления вводом с тем же именем и сохранил их на сервере jasper. Так что к настоящему времени я знаю, что это не так просто, я знаю, что вы должны создать эти параметры в основном отчете и каким-то образом связать их.

Я пробовал создавать параметры с тем же именем, я пробовал использовать выражения по умолчанию для использования основных параметров, я пробовал добавлять все параметры с помощью кнопки Параметры в свойствах набора данных для таблицы.

Я не уверен, куда идти дальше. Как мне связать основные параметры набора данных и параметры для набора данных, связанного с моей таблицей.

Ответ №1:

Вы используете студию Jaspersoft, верно?

Если да, то выберите свой стол. В поле «Свойства» (обычно в правом нижнем углу), если вы выберете вкладку «Набор данных» и прокрутите ее до конца, вы можете заметить кнопку «Параметры». Там вы можете сопоставить выражения с каждым параметром, который вы используете в наборе данных вашей таблицы. Таким образом, в этих выражениях вы можете использовать параметры, объявленные в вашем основном отчете.

В вашем файле JRXML это будет что-то вроде (для java.lang.String параметра):

 ...
<parameter name="MAIN_REPORT_PARAMETER" class="java.lang.String"/>
...
<subDataset name="Dataset1">
    ...
    <parameter name="DATASET_PARAMETER" class="java.lang.String"/>
    ...
</subDataset>
...
<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">
                    <datasetParameter name="DATASET_PARAMETER">
                        <datasetParameterExpression><![CDATA[$P{MAIN_REPORT_PARAMETER}]]></datasetParameterExpression>
                    </datasetParameter>

                     ...
                </datasetRun>
...
</jr:table>