Настройка REPORT_LOCALE в IReport?

Можно ли перезаписать параметр REPORT_LOCALE через скриптлет или непосредственно в IReports?

Псевдокод:

 if($P{MYLOCALEPARAM}== 1) REPORT_LOCALE = "en_US";
    if($P{MYLOCALEPARAM}== 2) REPORT_LOCALE = "de_GE";
    ....

Я запускаю отчеты через

"RunJasper.jar"
(gtwebmarque.com)

через PHP exec, и я не хочу менять и перекомпилировать этот инструмент...

Я знаю, что есть некоторые параметры локализации на вкладках параметров IReport. Но я хотел бы реализовать это динамически

BR Кристиан


person ChristianNRW    schedule 13.01.2012    source источник


Ответы (1)


Вы можете установить локаль с помощью JasperReports API.

Образец:

Map params = new HashMap(); 
params.put(JRParameter.REPORT_LOCALE, Locale.US); 
JasperFillManager.fillReportToFile(compiledReportName, params); 
person Alex K    schedule 13.01.2012
comment
Привет. как упоминалось выше, у меня нет доступа к методу fillreport. я использую runjasper.jar. Итак, моя идея: перезаписать REPORT_LOCALE в файле jrxml во время выполнения с собственными параметрами. - person ChristianNRW; 13.01.2012
comment
Насколько я знаю, вы не можете переопределить встроенный параметр отчета (REPORT_LOCALE) в файле jrxml. Вы можете попробовать сделать это с помощью iReport. Просто добавьте в файл jrxml этот блок: ‹имя параметра=REPORT_LOCALE class=java.util.Locale isForPrompting=false› ‹defaultValueExpression›‹![CDATA[новый язык(США, США)]]›‹/defaultValueExpression› ‹/parameter› - person Alex K; 13.01.2012
comment
Если я попробую это, я получу исключение: net.sf.jasperreports.engine.JRException: net.sf.jasperreports.engine.JRException: Дублированное объявление параметра: REPORT_LOCALE.. Поэтому мне пришлось реализовать его в runjasper.jar, что делает мой перевод JRXML в Jasper. Спасибо - person ChristianNRW; 13.01.2012
comment
@ChristianNRW Да, боюсь, это единственный способ установить локаль в вашем случае. - person Alex K; 13.01.2012
comment
Я понимаю это org.xml.sax.SAXParseException; lineNumber: 23; columnNumber: 179; Error at line 23 char 179: Duplicate declaration of parameter: REPORT_LOCALE. - person zygimantus; 30.09.2016