Списки значений ячеек
Предположим, база данных содержит следующие таблицы:
Было бы здорово предложить при редактировании полей 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 и DBEdit не обновляют списки значений при обычном обновлении данных.
SaveToDB 10 может автоматически обновлять списки значений, используя зависимости объектов. См. Зависимые списки значений.
Примеры списков значений выше содержат две колонки, id и name.
Можно также использовать списки из одной колонки. В этом случае, создаются списки значений, но без операций конвертации.
Можно задать списки с фиксированными значениями. См. Списки фиксированных значений.
Также можно использовать списки, которые зависят от значений параметров запросов или значений в ячейках строки. См. Динамические и фильтрованные списки.
См. подробные статьи о создании списков значений с использованием объектов баз данных:
- Списки значений из таблиц и представлений
- Списки значений из хранимых процедур
- Списки значений из команд SQL
См. также подробные статьи о создании списков значений с использованием REST API: