Форматы значений
Вкладка Value Formats
Вы можете указать форматирование для любого поля, выводимого отчетом, на вкладке Value formats в редакторе отчетов во время выполнения.. Ниже приведена форма для добавления формата:
-
Name - имя поля отчета с префиксом бэнда, например,
Book.year. -
Format string - формат поля. Для числовых значений укажите формат согласно правилам
java.text.DecimalFormat, для дат -java.text.SimpleDateFormat. -
Флажок Groovy script - позволяет указать Groovy-скрипт для форматирования параметра. Используя псевдоним
value, текущее значение параметра передается в скрипт, который может быть отформатирован или преобразован в нужный формат. Groovy-скрипт должен возвращать новое значение в виде строки.С помощью Groovy-скриптов можно создать форматер, который обрабатывает атрибуты типа перечисления в отчетах Jmix. Этот форматер будет преобразовывать ID перечисления в локализованный текст с использованием бина Messages.
Для доступа к бинам, управляемым Spring, используйте объект
ApplicationContext(org.springframework.context.ApplicationContext).
С помощью форматов можно вставлять в документ изображения и HTML-блоки.
-
Чтобы вставить изображение, укажите URL изображения в качестве значения поля, а строка формата должна быть следующей:
${image:<Ширина>x<Высота>}, например,${image:200x300}.Для работы с
FileRefиспользуйте форматер значений${imageFileId:WxH}, который принимает экземплярFileRefили URI файла в виде строки. -
Чтобы вставить HTML-блок, следует вернуть HTML-разметку в поле и выбрать
${html}в качестве строки формата. В выходном значении можно опустить теги верхнего уровня вплоть до<body>включительно. При необходимости все отсутствующие теги верхнего уровня будут добавлены автоматически. Все блоки должны быть закодированы вUTF-8. CSS и атрибутstyleне поддерживаются.
Вы также можете указать собственные пользовательские форматы. Для этого введите новое значение в поле, не открывая выпадающий список, и нажмите Enter. Также можно выбрать любой формат из выпадающего списка, отредактировать его имя в поле и нажать Enter. В обоих случаях пользовательский формат будет сохранен.
Аннотация @ValueFormatDef
Аннотация @ValueFormatDef определяет формат значения, который является элементом структуры отчета при создании отчета на этапе разработки (design time). Форматы значений тонко настраивают форматирование вывода для любого поля, генерируемого отчетом.
Эту аннотацию можно применять несколько раз к классу отчета, если он содержит несколько форматов значений. Для реализации дополнительной логики создайте метод, аннотированный @ValueFormatDelegate.
Аннотация @ValueFormatDef имеет следующие атрибуты:
-
band- имя полосы отчета, содержащей поле. -
field- имя поля, которое должно быть отформатировано. -
format- формат поля.-
Для числовых значений укажите формат в соответствии с правилами
java.text.DecimalFormat. -
Для дат используйте
java.text.SimpleDateFormat. -
Также доступны встроенные форматы для вставки изображений, HTML-блоков и т.д. Подробности смотрите в документации.
-
Аннотация @ValueFormatDelegate
Аннотация @ValueFormatDelegate отмечает метод-делегат, который реализует логику, связанную с форматом значения, определенным в классе определения отчета.
Требования:
-
Метод не должен иметь параметров.
-
Метод должен возвращать один из поддерживаемых функциональных интерфейсов.
Поддерживаемые интерфейсы:
-
CustomValueFormatter- реализация пользовательского форматирования.
@ValueFormatDelegate имеет следующие атрибуты:
-
band- соответствует атрибутуbandопределения формата значения. -
field- соответствует атрибутуfieldопределения формата значения.