Списки значений параметров

Списки значений параметров

Разработчики могут настроить списки значений для параметров, используя тип ParameterValues в таблице xls.handlers.

Ниже приведен пример настройки для получения значений из таблиц:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODETARGET_WORKSHEET
 s02usp_cashbookaccount_idParameterValuess02accountsTABLEid, +name
 s02usp_cashbookitem_idParameterValuess02itemsTABLEid, +name
 s02usp_cashbookcompany_idParameterValuess02companiesTABLEid, +name

Ниже приведен пример настройки для получения значений хранимыми процедурами:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODETARGET_WORKSHEET
 s02usp_cashbook2account_idParameterValuess02xl_list_account_idPROCEDURE
 s02usp_cashbook2item_idParameterValuess02xl_list_item_idPROCEDURE
 s02usp_cashbook2company_idParameterValuess02xl_list_company_idPROCEDURE

См. подробные статьи о создании списков значений с использованием объектов баз данных:

См. также подробные статьи о создании списков значений с использованием REST API:

Можно задать списки с фиксированными значениями. См. Списки фиксированных значений.

_NotNull и _KeepNull

Списки значений содержат пустое значение по умолчанию.

Обычно, значение NULL используется для выбора всех значений, как например, при использовании фильтра

WHERE
    c.company_id = COALESCE(@company_id, c.company_id)

Это поведение было добавлено в SaveToDB 7.31, 8.26, 9.12, 10.0, DBEdit 2.0, DBGate 2.0 и ODataDB 4.0.

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

SELECT NULL AS id, NULL AS name UNION ALL ...

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

Чтобы отключить добавление пустого значения, добавьте значение _NotNull в поле TARGET_WORKSHEET.

Чтобы отображать пустое значение только при его наличии в возвращаемом списке, добавьте значение _KeepNull.

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

Значения параметров по умолчанию

Параметры получают начальные значения из первых элементов списков значений или NULL, если списка нет.

Для установки начального значения можно использовать тип DefaultValue в таблице xls.handlers.

Например:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODETARGET_WORKSHEET
 s17usp_requestcategory_idDefaultValueATTRIBUTE1_NotNull
 s17usp_requesttime_idDefaultValueATTRIBUTE2

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

Формы JSON позволяют возвращать начальные значения параметров из запроса.

Параметры списков значений

Запросы списков значений могут иметь параметры.

Например, для получения списков значений на языке пользователя. См. Перевод данных.

Второй случай, это получение значений, зависимых от значений предыдущих параметров.

Например, если запрос данных содержит параметры @country_id и @state_id, то запрос получения значений @state_id может использовать значение параметра @country_id.

В этом случае, когда пользователь меняет значение параметра @country_id, будут обновлены значения @state_id (до загрузки основных данных).

Начиная с версий SaveToDB 8.26, 9.12, 10.0, DBEdit 2.0, DBGate 2.0, ODataDB 4.0 поддерживаются динамические списки значений.

Например, список значений для @state_id может возвращать колонки id, state и country_id (в третьей колонке), и список будет отображать значения, соответствующие значению @country_id.

См. Динамические и фильтрованные списки.

Обновление списков значений

SaveToDB и DBEdit загружают списки значений при первом подключении и при выполнении действий Обновить данные и конфигурацию и Обновить списки значений.

SaveToDB и DBEdit не обновляют списки значений при обычном обновлении данных.

SaveToDB 10 может автоматически обновлять списки значений, используя зависимости объектов. См. Зависимые списки значений.