То, что я пытаюсь сделать, кажется, просто.JasperReports: Как динамически изменять subreportExpression
У меня есть главный отчет, который включает элемент подзаголовка. Подрегистр заполняется из JRAbstractBeanDataSource
, в котором содержится коллекция 0-n подписок.
В родительском отчете, то подотчет встречается с:
<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + $F{subReportFileName}]]></subreportExpression>
Это прекрасно работает, SUBREPORT_DIR передается как парам к источнику данных в коде.
Что мне нужно сделать, хотя, это выбрать другое имя отчета, на основании свойств SubReport, что-то вроде:
<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "$F{subReportFileName}"]]></subreportExpression>
То есть, чтобы каждый элемент в коллекции SubReport DATAS на источник данных указать что должно быть имя файла .jasper
(т. е. разрешить ему выбирать, какой субрепорт использовать).
Возможно, есть лучший способ подумать об этом.
Упс, забыли разметку кода :) Спасибо. Я пытался найти способ установить имя отчета в качестве основного отчета, переработанного по элементам источника даты. Вместо этого я просто сделал запрос полностью динамическим, переданным в качестве параметра. Это то, что мне действительно нужно изменить для каждого под-отчета. Во всяком случае, спасибо за ваше время. – mtyson