Параметры отчета, печатной формы

Параметры отчета, определенные в скрипте

Определение параметров в скрипте отчета предоставляет возможность использовать данные параметры при построении отчета в SMP.

Параметры определяются в скрипте отчета методом getParameters, см. Методы API.

Параметры, определенные в скрипте, должны быть:

Постфикс параметра

Постфикс параметра, определенного в скрипте отчета, указывается при использовании параметров в шаблоне PRD и в SQL запросе, если в качестве параметра используется объект или элемент справочника: CatalogItem, CatalogItems, Object, Objects:

'код параметра'_'постфикс параметра'

Используются следующие постфиксы:

  • title — название элемента справочника /объекта или список названий;
  • uuid — уникальный идентификатор элемента справочника (объекта) или список uuid выбранных элементов (объектов);
  • id — идентификатор элемента справочника /объекта, или список идентификаторов, см. Базовый набор колонок таблицы БД для бизнес-объекта;
  • code — код элемента справочника или список кодов выбранных элементов справочника.

Параметры в SQL запросе

Использование параметров в SQL запросе, см. Составление SQL запроса для извлечения данных:

// id элемента справочника/объекта или список id выбранных элементов справочника/объектов
// ${<код параметра>_id}
// название элемента справочника/объекта или список названий выбранных элементов справочника/объектов
//  ${<код параметра>_title} 
// uuid элемента справочника/объекта или список uuid-ов выбранных элементов справочника/объектов
// ${<код параметра>_uuid} 
// код элемента справочника или список кодов выбранных элементов справочника
//  ${<код параметра>_code} 

Параметры во вложенном отчете

Чтобы передать параметры во вложенный отчет (печатную форму) или подотчет, нужно выбрать их в качестве колонки в master-отчете и импортировать во вложенный отчет (печатную форму), см. Подотчет.

Значение параметра "не указано" или null

Значение параметра "не указано" обрабатывается отдельно.

Если в параметре используется значение типа "строка" (в том числе _title, _code, _uuid), то для него должен быть описан случай, если строка пуста (null).

Пример 1. Для PostgreSQL, даты в незаполненном параметре null:

(serviceCall.stateStartTime >= (case when cast(${closureBegin} as timestamp) is not null then cast(${closureBegin} as timestamp) else '1990-01-01 12:00:00' end) ) and

(serviceCall.stateStartTime < (case when cast(${closureEnd} as timestamp) is not null then cast(${closureEnd} as timestamp) else '2050-01-01 12:00:00' end) )

Пример 2. Если в параметре используется id объекта, должен быть учтен случай, когда id=0:

(serviceCall.service_id >= (case when ${serviceParam_id} = 0 then -1 else ${serviceParam_id} end) ) and

(serviceCall.service_id <= (case when ${serviceParam_id} = 0 then 1000000000 else ${serviceParam_id} end) )

Системные параметры

Система автоматически заполняет и передает в генератор отчетов следующие параметры отчета, печатной формы.

Название параметра Описание
subject_table Название таблицы базы данных, содержащей объекты класса текущего объекта
subject_id Значение колонки id текущего объекта в таблице базы данных (то есть в subject_table)
subject_case Код типа текущего объекта (колонка case_id в таблице subject_table)
user_id Значение колонки id текущего пользователя (пользователь, который строит отчет) в таблице базы данных
user_uuid UUID текущего пользователя (пользователь, который строит отчет)
user_title Название текущего пользователя (ФИО сотрудника, который строит отчет)

Текущий объект — объект, на карточке которого расположен контент "Отчет, печатная форма" или "Список отчетов, печатных форм".

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