1.3. Внешние параметры отчета

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

Для описания внешних параметров служит вкладка Parameters and Formats редактора отчета. Рассмотрим форму добавления параметра:

report parameter

Вкладка Properties:

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

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

  • Parameter type - тип параметра.

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

  • Required parameter? - признак того, что параметр должен быть обязательно передан в отчет.

  • Entity - если указан тип параметра Entity или List of entities, то в данном поле необходимо выбрать тип сущности.

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

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

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

  • Default date(time) is current - если указан временной тип параметра (Date, Time или Date and time), этот флажок позволяет использовать текущее значение времени в качестве значения по умолчанию.

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

ru = Книга
Трансформация входных параметров

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

Скрипт Groovy должен возвращать новое значение параметра. Текущее значение доступно по алиасу paramValue, мэп параметров можно получить с помощью алиаса params. Например:

return "%" + paramValue + "%"

Также можно использовать готовые трансформации, которые добавляют специальные условия к текстовым параметрам типа String:

  • Starts with.

  • Ends with.

  • Contains.

report parameter transformation

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

Валидация внешних параметров

Вы можете настроить как валидацию отдельных параметров, так и перекрёстную валидацию параметров относительно друг друга.

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

    В скрипте доступны следующие переменные:

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

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

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

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

    • userSession - объект типа UserSession, связанный с текущим пользователем системы.

      report parameter validation
  2. Перекрёстную валидацию можно включить флажком Validate в разделе Cross parameters validation на вкладке Parameters and Formats. Логика валидации задаётся в скрипте Groovy. Скрипт должен проверить, не противоречат ли друг другу значения введённых параметров, и вызвать метод invalid(), если набор значений некорректен. Метод отобразит пользователю уведомление с переданным сообщением об ошибке валидации.

    Кроме переменных, перечисленных выше, в скрипт передаётся переменная params, которая хранит набор значений параметров, введённый пользователем.

    cross parameter validation