Классика
Быстрый ввод каталога - два уровня

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

Чтобы не тратить лишних умных слов, легче просто привести пример таких блоков данных: 




Товарные группы - Товары

Отделы компании - Сотрудники

Страны - Города

Статьи затрат - Затраты

Родители - Дети



 

В данном примере показано, как сформировать самый простой двухуровневый каталог "Группы - Позиции" с помощью порталов, расположенных на одной экранной форме. 

Создаем лэйаут, базирующийся на таблице Pro - служебная таблица, состоящая из одной записи (у Вас это может быть какая-то другая главная таблица). Подробнее про таблицу Pro здесь
Первый портал - ВСЕ записи таблицы Группы - они видны и их можно добавлять по связи Группы Pro|KeyOne| (поле KeyOne всегда и во всех таблицах равно 1) 
Второй портал - записи таблицы Товар - они видны и их можно добавлять и изменять по связи Товар Pro GL_IDГруппа|IDГруппа|. Т.е. это те товары, значение поля IDГруппа которых совпадает со значением поля Pro::GL_IDГруппа (а при создании нового товара становится равным Pro:GL_IDГруппа) 
Задается это поле при выборе группы, т.е. любой строчки первого портала, при этом срабатывает скрипт 
Set Field [Pro:GL_IDГруппа; Группы Pro|KeyOne|::IDГруппа] 
Срабатывание происходит либо при нажатии на кнопку (лампочка вкл/выкл), либо за счет скрипт-триггера при входе в любую строчку портала (OnObjectEnter) 
Подробности см. в файле-примере. 
В данный момент внешний ключ Pro:GL_IDГруппа = 2
 

Заглянув внутрь демо-файла, вы увидите, как "заставить" дочерний портал показывать только те записи, которые относятся к выбранной записи в "родительском" портале.

Заодно узнайте, как просто можно подсветить текущую строку портала.


 Демо-файл (.fmp12)

 

 




Автор: FMLogia

Тэги: всевидящая таблица

← Вернуться к списку статей