Параметризованные источники данных | A-TECHS

Параметризованные источники данных

На практике зачастую необходимы не фиксированные значения отборов в выражении источнике данных, а динамические отборы, зависящие от ввода пользователя.

Например, мы реализуем подбор остатков товаров на складе в операции. Склад пользователь выбирает в шапке операции, логично, чтобы подбор отображал остатки только по выбранному складу.

Или мы настраиваем отчет, отображающий информацию о движении денежных средств за период. Разумеется, при изменении периода в форме отчета необходимо извлечь и отобразить набор данных, соответствующий выбору пользователя.

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

Параметризация в операциях

В операциях источники данных используются в механизмах подбора, заполнения и для заполнения конкретных полей. В операции для использования в качестве параметров доступны значения полей шапки и строк таблицы операции. Значения в шапке начинаются с префикса $h(от header — шапка), а затем через точку указывается имя поля:

$h.fieldName — значение в поле шапки fieldName.

Значения в строке таблицы начинаются с $r (от row — строка), а затем через точку указывается имя колонки таблицы:

$r.columnName — значение в колонке columnName текущей строки таблицы.


Пример:

Tовары | Period(,$h.moment) | Cклад($h.текущийСклад) | Product($r.номенклатура) | GroupBy(product, quantity, amount) | Compute(price, amount/quantity)

Отбор по складу устанавливается по значению поля шапки ТекущийСклад, отбор по периоду устанавливается на момент операции ( на 1 миллисекунду раньше даты операции). Отбор по номенклатуре устанавливается по значению колонки Номенклатура текущей строки таблицы.

Данные источник вычисляет себестоимость номенклатуры в конкретной строке операции.


Параметризация в отчетах

В отчетах источники данных предназначены для извлечения данных, которые затем будут отображены в отчете. В отчетах в качестве параметров доступны значения настраиваемых отборов, а также значения выбора периода.

Доступные отборы задаются при настройке отчета, при этом каждому отбору присваивается имя. Имя отбора с префиксом & допустимо для использования в качестве параметра источника данных:

&filterName — параметр, в который будет передано значение отбора отчета.

Кроме того в отчетах доступны в качестве параметров значения выбора периода:

&dateStart Дата начала периода
&dateFinish Дата окончания периода
&dateStartPreviousDayEnd Конец дня предшествующий дате начала периода
&dateFinishPreviousDayEnd Конец дня предшествующий дате окончания период

Параметры &dateStartPreviousDayEnd и &dateFinishPreviousDayEnd используются, когда необходимо получить остатки на дату не включая дату. Например, надо получить остатки на начало периода, но не включая записи, в которых период равен дате начала периода.


Пример:

Деньги | Period(&dateStart, &dateFinish) | СompanyAccount(&account) | GroupBy(CompanyAccount, Amount) | GetTitle()

Данное выражение извлекает записи из журнала Деньги за период между значениями &dateStart и &dateFinish, установленными в форме отчета. Кроме того устанавливается отбор по колонке СompanyAccount согласно значениям, выбранным в фильтре account.