Списки значений ячеек
Предположим, ваша база данных содержит следующие таблицы:
Для полей account_id
, item_id
и company_id
будет удобно использовать списки значений из таблиц первичного ключа вместо числовых значений.
В документации используется термин "validation list" из Microsoft Excel.
Разработчики могут настроить списки значений ячеек, используя тип ValidationList в таблице xls.handlers.
Например:
ID | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | EVENT_NAME | HANDLER_SCHEMA | HANDLER_NAME | HANDLER_TYPE | HANDLER_CODE |
---|---|---|---|---|---|---|---|---|
s02 | cashbook | account_id | ValidationList | s02 | accounts | TABLE | id, +name | |
s02 | cashbook | item_id | ValidationList | s02 | items | TABLE | id, +name | |
s02 | cashbook | company_id | ValidationList | s02 | companies | TABLE | id, +name |
SaveToDB 8+, DBEdit, DBGate и ODataDB автоматически создают такие настройки для таблиц, представлений и хранимых процедур, если заданы отношения таблиц и доступно SQL-определение объекта.
Вы можете отключить автоматическую генерацию списков для объекта, добавив хотя бы один список вручную или установив тип события DoNotAddValidation.
Чтобы быстро настроить списки, можно скопировать и отредактировать автоматическую конфигурацию из информации о книге надстройки SaveToDB (в меню "Справка").
Списки значений работают следующим образом: загружаются основные данные, затем загружаются списки значений, и значения ключа из первой колонки заменяются значениями из второй колонки.
Когда пользователь сохраняет изменения или выполняются обработчики, происходит обратная конвертация табличных значений в значения первичного ключа.
Эта конвертация выполняется быстро, так что о ней можно не беспокоиться.
Однако загрузка списков значений может занять дополнительное время.
SaveToDB и DBEdit загружают списки значений при первом подключении и при выполнении действий Обновить данные и конфигурацию и Обновить списки значений.
Они не обновляют списки значений при обычном обновлении данных.
SaveToDB 10 может автоматически обновлять списки значений, используя зависимости объектов. См. Зависимые списки значений.
Примеры списков значений выше содержат две колонки: id
и name
.
Можно также использовать списки из одной колонки. В этом случае создаются списки значений, но без операций конвертации.
Можно задать списки с фиксированными значениями. См. Списки фиксированных значений.
Также доступны списки, которые зависят от значений параметров запросов или значений в ячейках строки. См. Динамические и фильтрованные списки.
См. подробные статьи о создании списков значений с использованием объектов баз данных:
- Списки значений из таблиц и представлений
- Списки значений из хранимых процедур
- Списки значений из команд SQL
См. также статьи о создании списков значений с использованием REST API: