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