Подготовка отчетов в Crystal Reports

       

в зависимости от его сложности


При генерации отчета в зависимости от его сложности Seagate Crystal Reports выполняет формирование отчета в три этапа, которым могут предшествовать некоторые подготовительные действия. Первым предварительным действием является вычисление всех формул, значения которых постоянны и не будут изменяться, то есть не зависят от содержимого записей. Это действие носит название «BeforeReading Records». После этого начинается первый этап чтения записей базы данных. На данном этапе выполняются следующие действия:

  • восстановление записей с применением сортировки и фильтрации записей базы данных, где это возможно на данном шаге,


  • вычисление формул со ссылками на поля базы данных, не использующих итоговые значения (это действие носит название «WhileReadingRecords»),


  • выполнение заданной фильтрации записей,


  • сортировка, группировка и подсчет итогов для каждой группы,


  • генерация кросс-таблиц,


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


  • На предварительном шаге перед вторым этапом Seagate Crystal Reports упорядочивает группы в соответствии с заданной иерархией (например, Top/Bottom N). На этом шаге чтения записей не происходит, а осуществляется только просмотр групп, сформированных на первом этапе.

    На втором этапе Seagate Crystal Reports выполняет требуемое форматирование данных на страницах, осуществляя следующие действия:

  • выбор групп по заданному фильтру,


  • вычисление полей Running totals,


  • вычисление значений формул, использующих итоги (это действие носит название «WhilePrintingRecords»),


  • создание диаграмм и карт,


  • создание подчиненных отчетов,


  • выполнение генерации страниц отчета по требованию.


  • На третьем и последнем этапе создания отчета выполняется подсчет общего числа страниц отчета (рис. 17).



    Рис. 17. Граф процесса генерации отчета в Crystal Reports

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

    Поля


    Содержание раздела