Параметры

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

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

parameters

После нажатия кнопки Create отображается диалоговое окно Report parameter.

report parameter

Свойства

На вкладке Properties можно определить свойства параметра:

  • Name - название параметра, которое будет отображаться в форме ввода параметров при запуске отчета.

  • Alias - псевдоним параметра, используемый для доступа к нему в наборах данных.

  • Type - тип параметра.

  • Hidden - флаг, определяющий, следует ли скрывать запрос параметра от пользователей.

  • Required? - флаг, определяющий, является ли параметр обязательным.

  • Default value - определяет значение параметра, которое будет использоваться по умолчанию, если пользователь не выберет другое значение.

Тип параметра может быть примитивным (String, Number, Boolean) или временным, кроме того, можно выбрать Enumeration, Entity или List of entities в качестве типа параметра. В зависимости от выбранного типа требуются дополнительные поля:

Если выбран тип параметра Entity или List of entities:

  • Entity - сущность, используемая в качестве параметра.

  • Entity selection view - необязательный идентификатор экрана, который будет использоваться для выбора экземпляров сущности. Если экран не указан, выбор будет производиться из специального общего экрана для всех сущностей.

Если выбран тип параметра Enumeration:

  • Enumeration - перечисление, используемое в качестве параметра.

Если выбран временной тип параметра (Date, Time или Date and time):

  • Default date(time) is current - флаг определяет, будет ли текущая метка времени использоваться в качестве значения параметра по умолчанию.

Локализация

На вкладке Localization можно определить название параметра для разных локалей. Для этого следует ввести пары locale_name = parameter_name, например:

de = das Buch

Преобразование

На вкладке Transformation можно применить Groovy-скрипт к параметру перед его использованием в отчете.

Groovy-скрипт должен возвращать новое значение параметра. В скрипт передаются следующие переменные:

  • params - карта параметров доступна по псевдониму params.

  • paramValue - текущее значение параметра доступно в скрипте как paramValue.

  • dataManager - объект типа DataManager, предоставляющий CRUD-функциональность.

  • metadata - объект типа Metadata, предоставляющий доступ к метаданным приложения.

  • applicationContext - объект типа org.springframework.context.ApplicationContext, предоставляющий доступ к управляемым бинам.

Например:

return "%" + paramValue + "%"

Также можно использовать предопределенные преобразования, которые добавляют подстановочные знаки для текстовых (String) параметров:

  • Starts with (Начинается с),

  • Ends with (Заканчивается на),

  • Contains (Содержит).

transformation

На вкладке Validation можно определить Groovy-скрипт с условиями для проверки параметра, подробности смотрите ниже.

Проверка

Вы можете проверить входной параметр и/или определить межпараметрическую проверку.

  1. Вы можете включить проверку каждого параметра на вкладке Validation, установив флажок Validate. Логика проверки задается Groovy-скриптом. Скрипт должен проверить значение параметра и вызвать метод showErrorMessage(), если значение недопустимо. Этот метод покажет пользователю предупреждение с указанным сообщением об ошибках проверки отчета.

    Скрипт получает следующие параметры:

    • value - значение параметра, введенное пользователем.

    • applicationContext - объект типа org.springframework.context.ApplicationContext, предоставляющий доступ к управляемым бинам.

    • currentAuthentication - объект типа io.jmix.core.security.CurrentAuthentication, связанный с текущим аутентифицированным пользователем.

    • dataManager - объект DataManager для выполнения CRUD-операций.

    • metadata - объект Metadata, предоставляющий доступ к метаданным приложения.

    • showErrorMessage - метод, который вызывает сбой проверки, если он вызывается в скрипте.

      validation
  2. Межпараметрическую проверку можно включить, установив флажок Validate в разделе Cross parameters validation на вкладке Parameters. Логика проверки определяется с помощью Groovy-скрипта. Этот скрипт должен проверять согласованность значений параметров и вызывать showErrorMessage(), если обнаружены несоответствия. Этот метод отображает пользователю предупреждение с указанием ошибок проверки отчета.

    В дополнение к перечисленным ранее параметрам скрипт также получает переменную params — карту, содержащую внешние параметры отчета.

    cross parameter validation