4.3. Внешние параметры отчёта
Внешние параметры передаются извне при запуске отчёта и используются в наборах данных в качестве условий. Все внешние параметры становятся полями каждой полосы отчёта, поэтому их можно непосредственно использовать в шаблоне как поля наборов данных. Если какой-либо набор данных выводит одноименное поле, оно маскирует внешний параметр в данной полосе, и в отчёте используется значение поля набора данных.
Для описания внешних параметров служит вкладка Parameters and Formats редактора отчёта. Рассмотрим форму добавления параметра:
Вкладка 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
.
Рисунок 53. Редактор параметров: трансформация -
На вкладке Validation задаётся Groovy-скрипт с некоторым условием для валидации значения параметра, см. ниже.
- Валидация внешних параметров
-
Вы можете настроить как валидацию отдельных параметров, так и перекрестную валидацию параметров относительно друг друга.
-
Разрешите валидацию одного параметра, установив флажок Validate на вкладке Validation редактора параметров. Логика валидации задается в скрипте Groovy. Скрипт проверяет значение параметра и вызывать метод
invalid()
, если введено некорректное значение. Метод отобразит пользователю уведомление с переданным сообщением об ошибке валидации.В скрипте доступны следующие переменные:
-
value
– значение параметра, введенное пользователем. -
dataManager
– объект типаDataManager
, предоставляющий CRUD-функциональность для работы с персистентными хранилищами данных. -
metadata
– объект типаMetadata
, позволяющий обращаться к метаданным приложения. -
security
– объект типаSecurity
, используемый для проверки прав пользователя на доступ к различным объектам системы. -
userSession
– объект типаUserSession
, связанный с текущим пользователем системы.Рисунок 54. Редактор параметров: валидация
-
-
Включите перекрестную валидацию флажком Validate в разделе Cross parameters validation на вкладке Parameters and Formats. Логика валидации задается в скрипте Groovy. Скрипт проверяет, не противоречат ли друг другу значения введенных параметров, и вызывает метод
invalid()
, если набор значений некорректен. Метод отобразит пользователю уведомление с переданным сообщением об ошибке валидации.Кроме переменных, перечисленных выше, в скрипт передается переменная
params
, которая хранит набор значений параметров, введенный пользователем.Рисунок 55. Редактор параметров: перекрестная валидация
-