Авторизация



Связанные подчиненные отчеты

Оценить
(1 голос)

Связанные подчиненные отчеты полезны в тех случаях, когда в отчете требуется отобразить связанные между собой элементы данных из нескольких таблиц базы данных, но по ряду причин (наподобие тех, что были рассмотрены в начале этой главы) создать подходящую связь между этими таблицами невозможно. Примером такого случая может служить отчет, который при попытке отобразить множество записей о продажах в регионе, за которыми следуют несколько записей о кредитах в том же регионе, сталкивается с необходимостью в реализации отношений типа “многие ко многим”. Содержащиеся в нем подчиненные отчеты сталкиваются с той же проблемой (рис. 12.6).

Чтобы создать связанный подчиненный отчет, сначала потребуется выполнить те же действия, что и при создании несвязанного подчиненного отчета, а именно: щелкнуть на кнопке Insert Subreport в панели инструментов или воспользоваться соответствующим

 

пунктом меню, чтобы создать подчиненный отчет, после чего импортировать существующий отчет или создать новый подчиненный отчет с помощью эксперта Subreport Expert. Связанные подчиненные отчеты 

Однако далее, перед тем, как щелкнуть на кнопке ОК в диалоговом окне Insert Subreport, следует перейти на вкладку Link (Связь). Это приведет к отображению диалогового окна Subreport Links (Связи подчиненного отчета), позволяющего установить параметры связи подчиненного отчета с главным.

Если вы случайно щелкнули на кнопке ОК в диалоговом окне Insert Subreport до того, как установили связи, не волнуйтесь, вы сможете это сделать и после размещения подчиненного отчета в главном. Crystal Reports также предоставляет возможность изменять связи для существующих связанных отчетов и устанавливать связи для отчетов, которые до этого были несвязанными. Для этого потребуется просто либо выбрать в меню Edit пункт Subreport Links (Связи подчиненного отчета), либо щелкнуть правой кнопкой мыши на объекте подчиненного отчета и в контекстном меню выбрать пункт Change Subreport Links (Изменить связи подчиненного отчета). На экране снова появится диалоговое окно Subreport Links, показанное на рис. 12.7.

В случае выполнения связывания прямо на вкладке Link диалогового окна Insert Subreport выпадающий список For Subreport будет недоступен — здесь можно установить связи только для подчиненного отчета, создаваемого на текущий момент. В случае выполнения связывания для подчиненного отчета, который уже существует в главном отчете, из этого списка можно будет выбрать нужный подчиненный отчет (не забывайте о том, что главный отчет может содержать несколько подчиненных отчетов).

Связанные подчиненные отчеты

Список Available Fields (Доступные поля) содержит все поля и формулы, которые имеются в главном отчете. Для связи необходимо выбрать требуемое поле из списка и добавить его в список Field(s) То Link То (Поле(я) для связывания), щелкнув на кнопке со стрелкой вправо. Удалить поле из списка связанных полей можно с помощью щелчка на кнопке со стрелкой влево.

После добавления поля в список Field(s) То Link То в диалоговом окне появятся еще три дополнительных опции. Выпадающий список Subreport Parameter Field То Use (Используемое поле параметра подчиненного отчета) будет содержать все поля параметров, которые вы создали в подчиненном отчете (для получения более подробной информации о полях параметров обратитесь в главу 13). Вдобавок к этим полям, Crystal Reports также создаст поля параметров на основе полей главного отчета с приставкой Pm-. Если оставить автоматические настройки, то в подчиненном отчете будут показываться только те поля, которые совпадают со связанным полем главного отчета.

Основное применение связанных подчиненных отчетов состоит в ограничении набора записей теми полями, которые совпадают со связанным полем главного отчета. Если поставлена именно такая задача, флажок Select Data In Subreport Based On Field (Выбирать данные в подотчете на основе поля) должен быть установлен. В выпадающем списке пол флажком необходимо выбрать поле подчиненного отчета, по которому будет ограничиваться набор записей (Crystal Reports автоматически показывает поле подчиненного отчета, которое называется так же, как и связанное поле главного отчета). Для настройки нескольких связей нужно добавить соответствующие поля главного отчета в список Field(s) То Link То и связать их с соответствующими полями подчиненного отчета.

Щелчок на кнопке ОК приведет к закрытию диалогового окна Subreport Links или Insert Subreport и созданию связи между главным и подчиненным отчетом. Если вы только создаете подчиненный отчет, рядом с курсором появится его контур. Просто зафиксируйте этот контур в подходящем разделе главного отчета; обычно таковым является раздел, содержащий поле, на основе которого подчиненный отчет был связан с главным. Связь в подчиненном отчете служит для двух целей — передачи данных из главного отчета в поле параметра подчиненного отчета и создания формулы для выборки записей на основе этого поля. Таким образом, когда главный отчет строит подчиненный, он помещает значение связанного поля главного отчета в поле параметра, которое служит для выбора записей из подчиненного отчета.

По этой причине, при просмотре подчиненного отчета отдельно от главного, на экране будет появляться окно Enter Values (Введите значения) с приглашением ввести значения для поля параметра, как показано на рис. 12.8.

Появление такого окна указывает на то, что значение для поля параметра не передается из главного отчета и поэтому должно быть введено вручную. Введите действительное для связанного поля значение (например, аббревиатуру названия штата, табельный номер заказчика, код отдела или любое другое подходящее для данного связанного поля значение) и щелкните на кнопке ОК. Появится вкладка Preview, на которой будут отображаться только те записи, которые вы указали.

При предварительном просмотре главного отчета, он будет передавать данные в подчиненный отчет через поле параметра каждый раз, когда тот будет обрабатываться; подчиненный отчет, в свою очередь, будет использовать это поле параметра в своей формуле отбора записей и возвращать в главный отчет ограниченный набор результирующих записей. На рис. 12.9 показан уже упоминавшийся ранее отчет по покупателям/кредитам с подчиненным отчетом о кредитах, который отображается в нижнем колонтитуле группы штатов.

Связанные подчиненные отчеты

 

Связывание на основе полей формул
Форматирование подчиненного отчета с помощью редактора Format Editor
Подчиненные отчеты по запросу и по месту вставки
Передача данных между главным и подчиненным отчетами
Пустые подчиненные отчеты

Добавить комментарий


Защитный код
Обновить