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

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

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

report parameter
Рисунок 52. Редактор отчётов: описание внешних параметров

Вкладка 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
Рисунок 53. Редактор параметров: трансформация

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

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

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

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

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

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

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

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

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

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

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

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

    cross parameter validation
    Рисунок 55. Редактор параметров: перекрестная валидация