|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
11. Применение подотчетовПодотчеты (subreports) в отчетах Crystal Reports 11.5, несвязанные подотчеты для модульности разработки, связанные подотчеты для отображения данных из различных источников, подотчеты по запросу (on-demand subreports) Еще одна очень важная функциональная возможность Crystal Reports — возможность встроить один отчет в другой, то есть воспользоваться подотчетами (subreports). В Crystal Reports предусмотрены подотчеты двух типов, при этом каждый из этих типов предусмотрен для совсем разных задач. Первый тип подотчета — несвязанные подотчеты (unlinked subreports). Они не используются для связи информации между разными источниками данных. Их основная роль — являться контейнерами для отображения какой-нибудь информации в главном отчете (текстовых полей, изображений и т.п.). Поскольку в несколько внешних отчетов можно поместить один подотчет, сохраненный в отдельном внешнем файле, то можно добиться того, что при внесении изменений в этот подотчет одновременно изменяются все внешние отчеты. Таким образом, можно централизованно изменять информацию о названии предприятия, контактную информацию, логотип фирмы и т.п. Конечно же, такое решение не является рекомендованным. Для хранения такой общей информации, совместно используемой разными отчетами, разработчики Crystal Reports рекомендуют использовать возможности репозитария. Однако далеко не на всех предприятиях есть возможность развернуть систему Crystal Enterprise, необходимую для поддержки репозитария, поэтому решение с несвязанными подотчетами на практике используется очень активно. Второй тип подотчета — связанные подотчеты (linked subreports). При помощи этой разновидности подотчета в одном отчете становится возможным связать информацию из различных источников данных (например, если в одной базе данных у вас находится пользовательская информация, а в другой — справочники). Сразу отметим некоторые важные моменты, которые связаны со связанными подотчетами:
Добавление подотчетов в отчет Crystal Reports производится при помощи меню Insert (Вставка) | Subreport (Подотчет). Откроется окно Insert Subreport, в котором можно будет выбрать, использовать ли подотчет из внешнего файла, сохраненного на диске (Choose an existing report) или создать новый подотчет с нуля при помощи мастера (Create a subreport with the report Wizard). Во втором случае подотчет будет полностью интегрирован во внешний отчет — отдельного файла для него не потребуется. Отметим также, что несмотря на то. что подотчет можно изначально создать только при помощи мастера, вы вполне можете потом доработать его при помощи дизайнера. Флажок On-demand subreport (Подотчет по запросу) позволяет настроить изначальный режим отображения подотчета. Если этот флажок установлен, вместо подотчета будет выводиться его значок. Сам подотчет будет показан только в случае, если пользователь щелкнет на этом значке мышью. Такое решение позволит повысить производительность, но пользователей оно устраивает редко. На следующей вкладке, которая называется Link (Связь), можно настроить параметры связывания внешнего отчета и подотчета. Если на этой вкладке оставить все по умолчанию (не выбрано ни одно поле для связи), то получится несвязанный (unlinked) подотчет, который, как уже говорилось, обычно используется для использования в нескольких отчетах одних и тех же текстовых полей, изображений и т.п. Если же выбрать поле внешнего отчета, то вам будет предложено настроить параметры его связывания с подотчетом (см. рис. 11.1).
Рис. 11.1 Окно настройки связей отчета и подотчета В поле Subreport parameter field to use можно согласиться с именем параметра, который будет использован для передачи информации в подотчет (оно генерируется автоматически) или выбрать ранее созданный параметр. При помощи флажка и списке Select data in subreport based on field можно автоматически создать фильтрацию данных в подотчете, которая будет производиться по выбранному в списке полю подотчета. Для целей фильтрации будет использоваться параметр, значения для которого для каждой записи внешнего отчета будут передаваться из поля, выбранного в верхней части экрана. После того, как все настройки в окнах мастера будут произведены, подотчет можно будет разместить во внешнем отчете. Скорее всего, вам потребуется доработать созданный подотчет в дизайнере. Для этого необходимо щелкнуть по подотчету и в контекстном меню выбрать команду Edit Subreport (Редактировать подотчет). Подотчет будет открыт в режиме дизайнера в отдельной вкладке. С этой же отдельной вкладки можно будет производить его тестирование при помощи кнопки F5 (значение параметра при этом придется вводить вручную). Если вам необходимо поменять настройки связей между отчетом и подотчетом, в вашем распоряжении — команда Change Subreports Links в контекстном меню для объекта подотчета. В остальном подотчет ведет себя как обычный объект Crystal Reports. Для него так же можно настраивать рамки (их часто приходится снимать), условное форматирование и т.п.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||