Авторизация



Пустые подчиненные отчеты

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

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

Решить вопрос с появлением таких пустых подчиненных отчетов можно двумя способами. Первый — подавить их и все связанные с ними итоговые поля, и второй — создать сообщение, которое будет информировать об отсутствии данных в данном от*«Гте.

При желании просто подавить подчиненный отчет, установите соответствующий флажок на вкладке Subreport редактора Format Editor. Чтобы этот способ работал правильно, подчиненный отчет должен находиться в своем собственном отдельном разделе. В этом случае подчиненный отчет также можно будет отформатировать с помощью эксперта Section Expert и установить в нем опцию Suppress Blank Section (Подавить пустой раздел). Тогда, в случае если подчиненный отчет не содержит никаких данных, подавляться будет целый раздел главного отчета.

Вместо подавления пустого подчиненного отчета, для него можно создать специальное информационное сообщение, например такое, как показано на рис. 12.13.

Такой результат был получен путем условного подавления различных разделов подчиненного отчета по критерию наличия или отсутствия записей из базы данных. Взгляните на вкладку Design этого подчиненного отчета, которая показана на рис. 12.14.

Нижний колонтитул группы содержит объекты, которые должны отображаться, если подчиненный отчет возвращает фактические записи. Нижний колонтитул отчета содержит объект (текстовое сообщение), который должен отображаться, если подчиненный отчет не возвращает никаких записей. Условное подавление этих разделов выполняется с помощью эксперта Section Expert.

Сначала условно подавите раздел с текстовым сообщением, щелкнув в окне эксперта Section Expert на кнопке Conditional Formula (Условная формула) рядом со свойством Suppress и добавив следующую формулу:

Not IsNull ({Credit.Credit Authorization Number})

Затем условно подавите разделы, содержащие фактические данные подчиненного отчета, применив к свойству Suppress такую формулу:

Пустые подчиненные отчеты

Не забывайте: вы условно подавляете (а не скрываете) разделы, поэтому должны хогмм шо все продумать. Если в подчиненном отчете нет данных в связи с отсутствием записи! удовлетворяющих связанному полю главного отчета, значение Credit Authorizati :и Number будет равно null. В этом случае необходимо, чтобы подавлялись фактически данные подчиненного отчета, а не информационное сообщение. Если данные есть, тог^н Credit Authorization Number не будет равен null. В этом случае должно подавляться информационное сообщение, а не фактические данные подчиненного отчета.

Совет. Такой подход может использоваться во всех отчетах Crystal Reports, а не только в подчиненных отчетах. При отсутствии данных в отчете можно выводить в нем информационное сообщение. Для получения более подробной информации об условном форматирований разделов обратитесь в главу 8.

Вопросы, связанные с производительностью

Применение подчиненных отчетов может приводить к снижению производительности. Ниже предложены некоторые рекомендации по оптимизации производительности Очевидно, что эти рекомендации больше подходят для тех случаев, когда пользователь будет просматривать отчет в интерактивном режиме с помощью Crystal Reports или как отчет типа по запросу через Web с помощью BusinessObjects Enterprise/Crystal Reports Server.

•    По возможности используйте подчиненные отчеты по запросу. Тогда пользователь не будет ожидать обработки всех подчиненных отчетов, а сможет открывать их по мере необходимости.

•    При создании связанного подчиненного отчета по возможности устанавливайте связь на основе индексированного поля подчиненного отчета. Это ускорит выборку записей в подчиненном отчете. Если подчиненный отчет основан на базе данных ODBC или SQL, рекомендуется переместить как можно больше SQL-запросов на сервер (в главе 15 приводятся советы по оптимизации доступа к базам данных SQL).

•    Если подчиненные отчеты связываются с помощью полей формул, желательно такие поля хранить в главном отчете, а в подчиненном использовать поля базы данных. Применение полей формул в подчиненном отчете, особенно если используется база данных SQL, может привести к обработке части или даже всего запроса на стороне клиента (что, естественно, негативно скажется на производительности).

Подробнее в этой категории: « Определенные виды отчетов
Определенные виды отчетов
Несвязанные подчиненные отчеты
Подчиненные отчеты с возможностью детализации
Связанные подчиненные отчеты
Связывание на основе полей формул

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


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