#jasper-reports #subreport
#jasper-отчеты #вложенный отчет
Вопрос:
Я хочу создать сложный файл jrxml для создания PDF.
Я хочу поместить другой jrxml в свой файл jrxml.
Итак .. мой вопрос в том, как поместить один jrxml в другой jrxml
Моими файлами jrxml являются: salesreport.jrxml, financialreport.jrxml и report.jrxml
Я хочу поместить salesreport.jrxml и financialreport.jrxml в report.jrxml.
Ответ №1:
Обычно вы разрабатываете отчеты с помощью iReport.
iReport предоставляет средства для включения вложенных отчетов в отчеты (путем перетаскивания значка вложенного отчета на страницу основного отчета).
Обратите внимание, что JasperReports использует абсолютные пути для ссылок на файлы. Я бы рекомендовал вам настроить параметры для ваших отчетов следующим образом:
$P{ROOT_DIR}
$P{SUBREPORT_DIR}
Укажите $P{SUBREPORT_DIR}
значение по умолчанию $P{ROOT_DIR} "subreports/"
.
На этом этапе вы можете передать в свой отчет абсолютный путь как $P{ROOT_DIR}
, и тогда вложенные отчеты будут сохранены в подкаталоге с именем subreports
, который находится в $P{ROOT_DIR}
.
Комментарии:
1. Создание вложенного отчета кажется излишним, когда вы хотите включить заголовок только в несколько отчетов PDF. Нет ли чего-либо аналогичного инструкции include в jrxml, которую вы могли бы использовать для включения одной аннотации jrxml в несколько других документов?
Ответ №2:
Или используйте класс JasperCompileManager из основного файла jrxml для его динамической компиляции.
<subreportExpression><![CDATA[JasperCompileManager.compileReport($P{SUBREPORT_DIR} "/myFile.jrxml")]]></subreportExpression>