Jasper Reports Пользовательский глобальный или встроенный параметр

В моем приложении у меня есть параметр, который может быть настроен пользователем под названием «Формат даты». Существует список форматов, которые они могут использовать, и когда они выбирают один, все даты в приложении и в отчетах используют этот формат.

Каждый раз, когда я создаю новый отчет, мне нужно создать параметр и связать элемент управления вводом. Я только что добавил новую настройку для форматирования чисел. У меня есть около 50 отчетов, к которым мне нужно применить это. После выполнения монотонной задачи по добавлению параметра и элемента управления вводом в каждый отчет мне стало интересно, есть ли более простой способ.

Можно ли создать собственный глобальный параметр, который будет автоматически доступен для всех отчетов (аналогично встроенным параметрам)?

Кроме того, есть ли способ сообщить яшме, если поле имеет определенный тип, чтобы автоматически что-то делать с ним на глобальном уровне. Например, если мой тип поля «десятичный», применить числовой формат?


person Allan    schedule 28.06.2012    source источник


Ответы (1)


Каждый отчет имеет параметр REPORT_FORMAT_FACTORY, который является экземпляром net. sf.jasperreports.engine.util.FormatFactory. Вы должны быть в состоянии создать свой класс, который реализует FormatFactory и в конструкторе принимает все, что вам нужно, чтобы определить правильный формат. Затем добавьте его в параметры при экспорте отчета.

Вам, вероятно, придется поиграть с ним, так как я не уверен, что он передает для pattern, когда значение установлено/не установлено. И если вы всегда игнорируете шаблон, то когда вам нужно явно установить его одинаковым во всех отчетах, это вызовет проблемы.

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

person Jacob Schoen    schedule 28.06.2012