Титул
Создание простых приложений баз данных для одного или небольшой группы пользователей.
Программа распространяется абсолютно бесплатно.

Подчиненная связь между запросами.

В DataExpress можно сделать так, чтобы один запрос зависел от другого. Т. е. при перемещении по записям запроса А, запрос Б отображал записи, соответствующие выбранной записи в запросе А. Для этого достаточно в выражении запроса Б обратиться к запросу А, например при помощи функций RECID и GET. Выражение может находиться в фильтре отбора, в выходном фильтре или в вычисляемых полях.

Примечание. На самом деле при перемещениях по записям запроса и при обновлении запроса программа ищет в других запросах формы подстроку вида: 'Запрос А'. И если подстрока найдена, то запрос обновляется. Таким образом для организации подчиненной связи достаточно подстроки данного вида. Такой незатейливый алгоритм, однако, может приводить к "побочным эффектам". Если, например, в выражении запроса в кавычках указано имя поля, совпадающее с именем запроса, то программа ошибочно будет считать это именем запроса и обновлять "подчиненный" запрос. Давайте запросам уникальные имена. Данное правило относится также к формам и полям.

Откроем базу, прилагаемую к статье. Три формы: Устройства, Узлы, Комплектующие, образуют два уровня подчиненности. Устройства состоят из узлов, узлы - из комплектующих.

Подчиненная связь между запросами.

В форме "Устройства" 2 запроса: _Узлы (Запрос А) и _Комплектующие (Запрос Б). Откроем отбор запроса "_Комплектующие" (красная стрелка на рисунке).

Подчиненная связь между запросами.

Обратите внимание на фильтр. Комплектующие фильтруются по объекту "Узел". Функция RECID передает в фильтр идентификатор текущей записи запроса "_Узлы".

Пример базы: Скачать.
<< Статьи

Контакты

Поддержать проект

МИР: 2200 7603 3542 3086
WebMoney: R031396282901