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

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

Разработчики могут настраивать списки значений для параметров с помощью типа 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 может автоматически обновлять списки значений, используя зависимости объектов. См. Зависимые списки значений.

Этот веб-сайт использует куки. Продолжая использовать веб-сайт, Вы принимаете условия Политики защиты персональных данных.