Документация iSZN
Выражение связи с первичной выборкой
Выражение связи с первичной выборкой определяет соответствие между записями первичной выборки выходного документа и записями вторичного варианта выборки. Выражение связи представляет собой SQL-выражение, подставляемое в выражение WHERE
запроса вторичной выборки. В данном выражении разрешено использование параметров отчётной системы.
Пример
Необходимо сформировать список людей, зарегистрированных в текущем районе, и их персональных документов. Данные о людях содержатся в таблице r_people_and_colls
, данные о персональных документах — в таблице r_personal_docs
. С помощью первичного варианта выборки сформируем список людей, с помощью вторичного — список персональных документов, с помощью выражения связи с первичной выборкой определим соответствие между людьми и их персональными документами.
Запрос первичной выборки
SELECT region_id, -- идентификатор района человека id, -- идентификатор человека last_name, -- фамилия first_name, -- имя middle_name -- отчество FROM uszn.r_people_and_colls rpac WHERE region_id={REGION} AND -- люди текущего района is_coll_instance=0 -- только люди (не коллективы)
Этот запрос выбирает список всех людей текущего района. В выходном документе данные, полученные с помощью этого запроса, представлены бэндом «Таблица первичной выборки».
В выходном документе SQL-выражения столбцов (располагаются между ключевыми словами SELECT
и FROM
) представлены соответствующими столбцами выходного документа с собственными SQL-выражениями. Выражение, начинающееся с ключевого слова FROM
, представлено завершением выражения выборки данных.
Запрос вторичной выборки
SELECT region_id, -- идентификатор района персонального документа id -- идентификатор персонального документа pc_id, -- идентификатор владельца персонального документа uszn.pkPerson.GetDocClassName(rpd.class_id) -- наименование класса персонального документа FROM uszn.r_personal_docs rpd WHERE region_id={REGION} -- персональные документы текущего района
Этот запрос выбирает список персональных документов всех людей текущего района.
В выходном документе данные, полученные с помощью этого запроса, представлены бэндом «Вложенная таблица». В выходном документе SQL-выражения столбцов представлены соответствующими столбцами вложенной таблицы с собственными SQL-выражениями. Выражение, начинающееся с ключевого слова FROM
, представлено завершением выражения вторичной выборки данных.
Выражение связи
rpac.region_id=rpd.region_id AND -- идентификатор района человека равен идентификатору района персонального документа rpac.id=rpd.pc_id -- идентификатор человека равен идентификатору владельца персонального документа
В выходном документе это выражение нужно оформить с использованием параметров, так как мы пользуемся столбцами и вариантами выборки с собственными SQL-выражениями:
{@ Expression="rpac.region_id"}=rpd.region_id AND {@ Expression="rpac.id"}=rpd.pc_id
В сформированном выходном документе будет содержаться таблица со списком людей текущего района, после каждой записи которой будет находиться вложенная таблица со списком персональных документов человека.