После создания PDF-файла я могу указать свойство Title документа в Java, например...
jasperPrint.setProperty("net.sf.jasperreports.export.pdf.metadata.title", "Report ID "+REPORT_ID);
Вопрос: Как вместо этого сделать то же самое в файле .jrxml, получив идентификатор из значения поля в данных?
Что я пробовал:
Размещение <propertyExpression> с другими тегами <property> вроде как работает, но дает «Идентификатор отчета нулевой» (потому что он идет перед объявлениями полей? Так работает jrxml?):
<propertyExpression name = "net.sf.jasperreports.export.pdf.metadata.title"><![CDATA["Report ID " + $F{REPORT_ID}]]></propertyExpression>
= "Report ID null"
Когда я перемещаю тег <propertyExpression> под объявлениями полей, выдается ошибка, что <propertyExpression> не является допустимым тегом (хотя он все еще является дочерним элементом корневого элемента):
<field name = "REPORT_ID" class = "java.lang.String"/>
...
<propertyExpression name = "net.sf.jasperreports.export.pdf.metadata.title"><![CDATA["Report ID " + $F{REPORT_ID}]]></propertyExpression>
Ссылка на ошибку: - 1716423819763 -: javax.ejb.EJBException: net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException; Номер строки: 232; Номер столбца: 76; cvc-complex-type.2.4.a: Обнаружен недопустимый контент, начиная с элемент «Выражение свойства». Один из '{"http://jasperreports.sourceforge.net/jasperreports": переменная, "http://jasperreports.sourceforge.net/jasperreports":filterExpression, "http://jasperreports.sourceforge.net/jasperreports": группа, "http://jasperreports.sourceforge.net/jasperreports": фон, "http://jasperreports.sourceforge.net/jasperreports":title, "http://jasperreports.sourceforge.net/jasperreports":pageHeader, "http://jasperreports.sourceforge.net/jasperreports":columnHeader, "http://jasperreports.sourceforge.net/jasperreports":подробно, "http://jasperreports.sourceforge.net/jasperreports":columnFooter, "http://jasperreports.sourceforge.net/jasperreports":pageFooter, "http://jasperreports.sourceforge.net/jasperreports":lastPageFooter, "http://jasperreports.sourceforge.net/jasperreports": резюме, «http://jasperreports.sourceforge.net/jasperreports»:noData}» — это ожидал.





Установите evaluationType = "Report" для выражения свойства:
<propertyExpression name = "net.sf.jasperreports.export.pdf.metadata.title" evaluationType = "Report"><![CDATA["Report ID " + $F{REPORT_ID}]]></propertyExpression>
Свойство будет оценено после завершения отчета и будет использовать последнее значение поля REPORT_ID.
Вам следует опубликовать небольшой фрагмент — похоже, файл jrxml, который вы пытались использовать, недействителен.