Форматы значений

Вкладка Value Formats

Вы можете указать форматирование для любого поля, выводимого отчетом, на вкладке Value formats в редакторе отчетов во время выполнения.. Ниже приведена форма для добавления формата:

value format
  • Name - имя поля отчета с префиксом бэнда, например, Book.year.

  • Format string - формат поля. Для числовых значений укажите формат согласно правилам java.text.DecimalFormat, для дат - java.text.SimpleDateFormat.

  • Флажок Groovy script - позволяет указать Groovy-скрипт для форматирования параметра. Используя псевдоним value, текущее значение параметра передается в скрипт, который может быть отформатирован или преобразован в нужный формат. Groovy-скрипт должен возвращать новое значение в виде строки.

    С помощью Groovy-скриптов можно создать форматер, который обрабатывает атрибуты типа перечисления в отчетах Jmix. Этот форматер будет преобразовывать ID перечисления в локализованный текст с использованием бина Messages.

    value format groovy

    Для доступа к бинам, управляемым 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 определения формата значения.