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

         

Форматирование


Абсолютное или безусловное форматирование применяется к выделенному объекту путем задания параметров форматирования и установки соответствующих атрибутов. Задание относительного или условного форматирования осуществляется с помощью формул, проверяющих выполнение некоторых условий. При форматировании можно использовать следующие диалоговые окна:

«Format Editor» для форматирования полей и их значений;

«Section Expert» для форматирования области отчета целиком;

«Highlighting Expert» для условного форматирования числовых и денежных полей.

    Окно «Format Editor» содержит набор вкладок, которые вызываются следующими командами меню Format: Format Field, Format Text, Border and Colors, Font, Paragraph Formatting.

Вкладка «Common» окна «Format Editor» (рис. 8) включает следующие параметры:




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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

Поля


Seagate Crystal Reports дает возможность


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

значения полей, расчетные значения и поля RunningTotals,

промежуточные итоги и результаты расчетов для полей группирования,

итоговые значения кросс-таблиц,

данные OLAP-анализа.

Специальный Мастер, Chart Expert, обеспечивает четыре способа организации диаграммы в зависимости от типа данных:

Advanced — для многочисленных значений, не содержащих полей группирования или итоговых полей (позволяет создавать 3-х мерные диаграммы),

Group — для отчетов с группировкой, содержащих хотя бы одно итоговое значение,

Cross-Tab — для отчетов типа кросс-таблиц (не требует группировки или итогов),

OLAP — для отчетов типа OLAP.

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

Создадим диаграмму для значений, отображаемых в области «Details» (Advanced layout). Для такой диаграммы следует указать:

условия (до двух) — позволяют изображать точки для значений каждой записи либо по изменению значения одного из полей;

поле данных или формулы, содержащие значения, отображаемые на диаграмме.

1. Выполним команду Insert— Chart либо щелкнем по кнопке Chart панели инструментов. Открывается окно «Chart Expert».

2. На вкладке Type в списке Chart type

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

3. Переходим на вкладку Data, на которой в области Layout выбираем способ организации диаграммы (Advanced).

В раскрывающемся списке Place Chart

указываем, как часто должна появляться диаграмма в отчете (один раз или в каждой группе) и в какой области отчета.



Если отчет содержит кросс-таблицу, то можно построить диаграмму на основе ее данных (Cross-Tab layout). Создадим диаграмму типа Cross-Tab, для чего проделаем следующие действия:

1. Выполним команду Insert— Chart, либо щелкнем по кнопке Chart панели инструментов. Открывается окно «Chart Expert».

2. На вкладке Type в списке Chart type

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

3. Переходим на вкладку Data, на которой в области Layout выбираем способ организации диаграммы (Cross-Tab).

В области Data задаем условие с помощью раскрывающегося списка On change of. С помощью списка Show указываем функцию, значения которой будут использованы для построения диаграммы (рис. 22).



Рис. 22. Выбор полей для построения диаграммы типа Cross-Tab

4. На вкладке Axes задаем параметры осей и формат их меток.

5. На вкладке Options — легенда и другие параметры оформления диаграммы.

6. На вкладке Text можно добавить заголовки к различным элементам диаграммы либо использовать установки по умолчанию.

7. Щелчок по кнопке ОК поместит диаграмму в заданную область отчета.

Если отчет содержит итоговые данные (в группах или общие), то на их основе можно построить диаграмму типа OLAP. Создадим такую диаграмму.

1. Выполним команду Insert— Chart либо щелкнем по кнопке Chart панели инструментов. Открывается окно «Chart Expert».

2. На вкладке Type в списке Chart type

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

3. Переходим на вкладку Data, на которой в области Layout выбираем способ организации диаграммы (OLAP).

В области Placement указываем место расположения диаграммы.

В области Data задаем условие с помощью раскрывающегося списка On change of, при изменении значений которого будут вычисляться точки диаграммы.

С помощью списка Subdivided by

задаем второе поле, при изменении значений которого будут вычисляться точки диаграммы (рис. 23).



Рис. 23. Выбор полей для построения диаграммы типа OLAP

4. На вкладке Axes задаем параметры осей и формат их меток.



5. На вкладке Options — легенда и другие параметры оформления диаграммы.

6. На вкладке Text можно добавить заголовки к различным элементам диаграммы либо использовать установки по умолчанию.

7. Щелчок по кнопке ОК поместит диаграмму в заданную область отчета.

Для выполнения более эффективного анализа и форматирования диаграмма может быть отображена на специальной вкладке Analyzer. Команды работы с диаграммой собраны в специальном меню Analyzer. Открывается данная вкладка с помощью команды Launch Analyzer. Остальные команды позволяют:

увеличивать или уменьшать изображение диаграммы,

сохранить ее шаблон в отдельном файле,

применить к диаграмме новый шаблон,

изменить параметры шаблона,

изменить заголовки диаграммы,

изменить масштаб и деления осей,

выполнить дополнительное форматирование, доступное для данного вида диаграммы.

Вкладка Analyzer может одновременно отображать до двух диаграмм (рис. 24).



Рис. 24. Одновременный просмотр двух диаграмм на вкладке Analyzer


Поля, содержащие формулы


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

Формулы делятся на четыре группы:

вычислительные формулы — размещаются в качестве отдельных полей отчета;

формулы условного форматирования — служат для изменения вида полей, текста, объектов и областей отчета в целом, устанавливаемого с помощью окна «Format Editor», из которого и вызывается окно «Formula Editor» для составления формулы;

формулы выделения — ограничивают число полей, которое используется в области групп или в отчете. Обычно формулы такого типа создаются с помощью окна «Select Expert», а затем могут быть отредактированы вручную.

формулы поиска — помогают найти данные в отчете. Подобно формулам выделения, они создаются не непосредственно, а с помощью «Search Expert».

Возможно их редактирование вручную.

Обычно для вызова окна «Formula Editor» следует:

    1) выбрать команду Insert — Formula Field,

    2) в окне «Field Explorer» выделить строку Formula Fields и щелкнуть по кнопке New,

    3) в окне «Formula Name» ввести имя создаваемой формулы и щелкнуть по кнопке ОК.

Окно «Formula Editor» содержит (рис. 16):

 




Отчет включает набор областей


. Представление отчета в режиме конструктора
Отчет включает набор областей (некоторые из них могут повторяться в отчете несколько раз) со следующими возможностями:
Report Header содержит объекты, которые будут напечатаны в начале отчета (формулы, размещенные в этой области, вычисляются один раз в начале данного отчета; диаграммы и кросс-таблицы включают полные данные отчета);

Page Header
содержит объекты, которые печатаются в начале каждой страницы отчета (область не может содержать диаграммы и кросс-таблицы; формулы, размещенные в этой области, вычисляются один раз в начале каждой новой страницы);
Group Header содержит объекты, которые печатаются в начале каждой новой группы (диаграммы и кросс-таблицы при этом включают данные только этой группы; формулы, размещенные в этой области, вычисляются один раз в начале каждой новой группы);
Details Area содержит объекты, которые выводятся на печать для каждой новой записи базы данных (область не может содержать диаграммы и кросс-таблицы; формулы, размещенные в этой области, вычисляются один раз для каждой записи);
Group Footer содержит объекты, которые печатаются в конце каждой группы (диаграммы и кросс-таблицы при этом включают данные только этой группы; формулы, размещенные в этой области, вычисляются один раз в конце каждой группы);
Report Footer содержит объекты, которые будут напечатаны в конце отчета (формулы, размещенные в этой области, вычисляются один раз в самом конце отчета; диаграммы и кросс-таблицы включают полные данные отчета);
Page Footer содержит объекты, которые печатаются в конце каждой страницы отчета (область не может содержать диаграммы и кросс-таблицы; формулы, размещенные в этой области, вычисляются один раз в конце каждой страницы).
Каждая область имеет одну или несколько направляющих, по которым выполняется выравнивание объектов. Однако для объектов, основанных на тексте, выравнивание происходит иначе, чем для OLE-объектов. Выравнивание текстовых объектов выполняется по базовой линии текста, а не по его рамке. Базовая линия отображается специальными маркерами красного цвета внутри рамки объекта и может быть расположена различным образом в зависимости от размера шрифта.


. Вкладка «Number» окна «Custom Style»

для специального форматирования чисел
Если на вкладке «Number» окна « Format Editor» выполнить щелчок по кнопке Customize, то откроется окно «Custom Style» (рис. 9), на вкладке «Number» которого можно задать следующие установки для выделенных числовых полей:
флажок Use Accounting Format — задает применение установок, соответствующих бухгалтерскому формату;
флажок Suppress if Zero — отменяет печать нулевых значений;
раскрывающийся список Decimals — задает от 0 до 10 значащих цифр в дробной части;
раскрывающийся список Rounding — округляет числа с заданной точностью;
раскрывающийся список Negatives — определяет представление отрицательных чисел;
— -1.23 печатает знак минус перед числом: -100.00, -225.73, -1,000,000;
— 1.23- печатает знак минус после числа: 100.00-, 225.73-, 1,000,000.00-;
— (1.23) печатает отрицательные числа в скобках: (100.00), (225.73), (1,000,000);
флажок Reverse Sign for Displaying — изменяет знак приходных и расходных статей в финансовых отчетах;
флажок Allow Field Clipping — позволяет укорачивать значения в поле, если оно не помещается в заданный размер. В противном случае в поле отображается набор #####, указывающий на необходимость изменения размера поля;
поле Decimal separator — разрешает задать любой разделитель для дробной части числа;
флажок Thousands Separator — позволяет задать разделитель между разрядами чисел;
поле Symbol
— отображает текущий разделитель между разрядами чисел;
флажок Leading Zero — для печати нуля в целой части числа;
раскрывающийся список Show Zero Values as — содержит возможные представления нулевого значения.
    Если выбрать команду Format — Section, то откроется окно «Section Expert», которое позволяет придать различные свойства областям отчета (рис. 10).




Окно « Section Expert» для выбора свойств областей отчета
Для исключения некоторых областей из отчета при его просмотре или печати можно скрыть их, устанавливая следующие свойства:
Suppress Blank Section — позволяет скрыть область, если в ней ничего нет;
Suppress (No Drill-Down)
— скрывает область без возможности ее развертывания при просмотре, задается абсолютно либо по условию, записанному с помощью формулы;
Hide (Drill-Down OK) — позволяет скрыть область, но показывает специальный курсор для ее развертывания и просмотра, задается только абсолютным образом.
 


Окно « Highlighting Expert» для условного форматирования
При проектировании отчета требуется определить, какие поля должны быть включены в его состав, и в каких областях отчета размещены. Их включение, удаление и редактирование выполняется с помощью окна «Field Explorer» (рис. 12), которое вызывается командами: Database Field, Formula Field, Parameter Field, Special Field, Running total field, SQL Expression Field, входящими в меню Insert. В этом окне представлена иерархическая структура полей отчета и таблиц базы данных, являющихся его основой. Если поле представлено в отчете или используется в других его полях, то оно будет помечено специальным знаком. Для вставки поля в отчет его имя нужно выделить в окне «Field Explorer», щелкнуть по кнопке Insert to Report,
расположенной на панели инструментов этого окна, а затем щелкнуть на требуемой позиции области отчета. Для просмотра существующих значений вставляемого поля используется соседняя кнопка Browse.




Окно «Field Explorer», позволяющее управлять полями отчета
Параметрические поля позволяют пользователю вводить дополнительную информацию перед представлением отчета и, следовательно, использовать один и тот же отчет для получения его различных вариантов по значениям базы данных.
Параметрические поля можно использовать как в самом отчете, так и в его формулах или фильтрах, а также в подчиненных отчетах. Ввод каждого параметра предваряется подсказкой, не превышающей 254 символов, размещаемых в строках длиной 60-70 символов. Для ввода параметра можно создать список значений, из которого пользователь будет выбирать нужное при формировании отчета.
Для создания параметрического поля следует сделать следующее.

1. Открыть отчет, сохраненный в файле REPORT2.RPT, и перейти на вкладку Design.

    2. Выбрать команду Insert — Parameter Field.

    3. В окне «Field Explorer» выделить строку Parameter Fields и щелкнуть по кнопке New.

    4. В окне «Create Parameter Field» (рис. 13) ввести имя параметра, текст подсказки и выбрать тип значений (используем String)
.




Создание нового параметрического поля
5. Щелчком по кнопке Set default values
открываем одноименное диалоговое окно (рис. 14), в котором для таблицы «Customer» выбираем поле Region и в появившемся списке регионов выбираем только названия штатов США (так как все они обозначаются двумя буквами, то отбор удобно произвести с помощью области Options и указания длины используемого текста)
.




Формирование списка значений для параметра
6. Щелчком по кнопке ОК закрываем оба окна.

7. В окне «Field Explorer» выделяем поле Region и мышью переносим его в одну из областей отчета, а затем закрываем окно щелчком по кнопке Close.
Теперь параметр необходимо связать с полем отчета, для чего следует выполнить ряд действий.

    1. Выбрать команду Report — Select Expert или щелкнуть по одноименной кнопке стандартной панели инструментов.

    2. В открывшемся окне «Choose Field» выделить поле Region таблицы «Customer» и щелкнуть по ОК.

    3. В окне «Select Expert» выбрать в раскрывающемся списке условие is equal to, а в дополнительном списке справа выбрать поле параметра Region. Щелкнуть по кнопке ОК.

    4. Перейти в режим предварительного просмотра отчета на вкладку Preview.

    5. В окне «Enter Parameter Values» в раскрывающемся списке выбрать одно из значений параметра (рис. 15) и щелкнуть по ОК.


Рис. 15. Выбор значения параметра из списка
6. Щелкнуть по кнопке Refresh.


Окно « Formula Editor» для создания формул.
область Field Tree, отображающую поля таблиц, поля групп и формулы, используемые в отчете,
область Function Tree, содержащую список встроенных функций Crystal Reports,
область Operator Tree со списком операций, используемых для создания формул,
область Formula Text Window, в которой выполняется редактирование текста формулы.
Текст формулы может полностью набираться на клавиатуре. (Двойной щелчок мышью по одному из компонентов первых трех областей вставляет его в текст формулы.) Синтаксис набранной формулы можно проверить, щелкнув по кнопке Check. Если ошибок нет, то формулу сохраняют, используя кнопку Save and Close.
Чтобы вставить формулу в отчет, следует дважды щелкнуть по ней в окне «Field Explorer» и щелкнуть по желаемой позиции в области отчета. Формула, вставленная в отчет, помечается символом @. При удалении формулы из отчета сначала удаляются все поля этой формулы в областях отчета, а затем ее описание с заданным именем.
Можно использовать справку для создания часто используемых формул. Раздел справки «Formulas in Action» содержит 17 вариантов различных формул, которые после копирования в окно «Formula Editor» можно отредактировать.
В формулах Crystal Reports можно использовать как собственный синтаксис Crystal Syntax, так и синтаксис Visual Basic. При этом можно использовать не только встроенные функции, определенные в этих языках, арифметические и логические операторы, но также операторы ветвления (If _ Then _ Else и Select _ Case) и операторы цикла (While _ Do, Do _ While и For loop).
При создании формул в Crystal Reports следует учитывать ряд ограничений.
Максимальная длина текстового константа, текстового поля или элемента массива — 254 символа.
Максимальный размер массива — 1000 элементов.
Максимальное число аргументов функции до 1000.
Максимальная длина текста формулы — 64 Кбайт.
Максимальное число циклов вычисления формулы — 30000.
Функции даты-времени принимают года в диапазоне от 1 до 9999.
 

Running totals


. Специальные поля, позволяющие контролировать подсчет итогов, могут использоваться для решения следующих задач:

подсчет значений итогов по каждой записи,

создание итогов, независимых от группирования записей,

вычисление итогов с использованием условий,

вычисление итогов для таблиц со связью «один-ко-многим».

В зависимости от той области отчета, в которой будет помещено поле Running totals, результат, возвращаемый формулой, будет различным.

Report Header возвращает только первую запись отчета.

Page Header cоздает итог и включает в него первую запись текущей страницы.

Group Header cоздает итог и включает в него первую запись текущей группы.

Details area cоздает текущий итог для каждой записи (с накоплением).

Group Footer cоздает общий итог для каждой группы.

Report Footer cоздает итог и включает в него первую запись со следующей страницы.

Page Footer cоздает общий итог для всех записей.

Создадим текущие итоги (Running totals) для каждой записи. Для этого создадим простой отчет на базе таблиц Customers и Orders из базы данных Xtreme.mdb. В отчет включаем поля customer.

CUSTOMER NAME, orders.ORDER ID, orders.ORDER AMOUNT. Дополним отчет полем с текущим итогом, для чего осуществим следующие действия:

1. Выполним команду Insert — Running Total Fields. В появившемся окне «Field Explorer» щелкнем по кнопке New.

2. В окне «Create Running Total Field» в строку Running Total Name введем текст «TotalOrders». В области «Available Tables and Fields» выделим orders.ORDER AMOUNT и щелчком по первой из кнопок со стрелкой вправо перенесем его в строку «Field to summarize». В раскрывающемся списке «Type of summary» выбираем функцию SUM. В области «Evaluate» выберем значение переключателя «On change of field» и в одноименную строку с помощью второй кнопки со стрелкой вправо занесем имя поля — orders.ORDER ID. Это приведет к подсчету итоговых значений при каждом изменении содержимого этого поля. В области «Reset» сохраним значение переключателя «Never», что приведет к накоплению итоговых значений по всем данным отчета (рис. 18). Щелчок по кнопке ОК сохранит выбранные установки и возвратит нас к окну «Field Explorer».




Рис. 18. Окно определения параметров поля Running Total

3. С помощью кнопки Insert to Report вставим поле TotalOrders правее всех полей отчета в области Detail. Перейдя на вкладку Preview, можно увидеть текущие итоги в правом столбце отчета.

Аналогичным образом можно создать текущие итоги для групп записей, но предварительно следует осуществить требуемое группирование. Снова создадим простой отчет на базе таблиц Customers и Orders из базы данных Xtreme.mdb, в который включим поля customer.CUSTOMER NAME, orders.ORDER ID, orders.ORDER AMOUNT, и проделаем следующее:

1. Выполним команду Insert — Group и создадим группировку по полю cus tomer.USTOMER NAME.

2. Выполним команду Insert — Running Total Fields. В появившемся окне «Field Explorer» щелкнем по кнопке New.

3. В окне «Create Running Total Field» в строку Running Total Name введем Group RunningTotal. В области «Available Tables and Fields» выделим orders.ORDER AMOUNT и щелчком по первой из кнопок со стрелкой вправо перенесем его в строку «Field to summarize». В раскрывающемся списке «Type of summary» выбираем функцию SUM. В области «Evaluate» выберем значение переключателя «For each record». В области «Reset» выберем значение переключателя «On change of group» и оставим предложенное по умолчанию имя группы (рис. 19). Щелчок по кнопке ОК сохранит выбранные установки и возвратит в окно «Field Explorer».



Рис. 19. Определение параметров поля Running Total для групп запсей.

.

4. С помощью кнопки Insert to Report вставим поле GroupRunningTotal правее всех полей отчета в области Detail. Перейдя на вкладку Preview, можно увидеть текущие итоги в правом столбце отчета. Если необходимо создать общий итог для каждой группы, то поле Group RunningTotal следует поместить в область Group Footer.

Если в отчете не следует группировать записи или требуется оставить их рассортированными по другому признаку, но необходимо подсчитать итоги с учетом определенных условий, можно воспользоваться текущими итогами по условию. Для примера таких итогов предварительно создадим простой отчет на базе таблиц Customers и Orders из базы данных Xtreme.mdb. В отчет включим поля customer.



CUSTOMER NAME, customer.COUNTRY, customer.LAST YEAR’S SALES.

Дополним отчет полем с текущим итогом по условию, для чего осуществим следующие действия:

1. Выполним команду Report — Sort Records и выберем сортировку по полю customer.CUSTOMER NAME.

2. Выполним команду Insert — Running Total Fields. В появившемся окне «Field Explorer» щелкнем по кнопке New.

3. В окне «Create Running Total Field» в строку Running Total Name введем USTotal.

В

области «Available Tables and Fields» выделим customer.LAST YEAR’S SALES и щелчком по первой из кнопок со стрелкой вправо перенесем его в строку «Field to summarize». В раскрывающемся списке «Type of summary» выберем функцию SUM.

В области «Evaluate» выберем значение переключателя «Use a formula» и щелкнем по кнопке Formula. В открывшемся окне «Running Total Condition Formula Editor» в строку Formula вводим [Customer.Country] = «USA». Это значит, что при вычислении текущих итогов будут использованы только записи, значение поля customer.COUNTRY, которых равно USA. Проверяем синтаксис и закрываем окно щелчком по кнопке Save and Close.

В области «Reset» выберем значение переключателя «Never».

Щелчок по кнопке ОК сохранит выбранные установки и возвратит в окно «Field Explorer».

3. С помощью кнопки Insert to Report вставим поле USTotal правее всех полей отчета в области Detail. Перейдя на вкладку Preview можно увидеть условные текущие итоги в правом столбце отчета.

 


Создание кросс-таблиц (Cross-Tab Report)


Кросс-таблица, или перекрестный отчет, в Seagate Crystal Reports — это таблица с группировкой значений в двух направлениях: по горизонтальным строкам и вертикальным столбцам, на пересечении которых рассчитаны итоги по этим группам. Кроме того, таблица может включать общие итоги по строкам и столбцам.

Создадим новый отчет типа Cross-Tab:

1. Выбираем команду File—New, открывая окно «Report Gallery», в котором выбираем строку Cross-Tab. Щелчком по кнопке ОК вызываем одноименное окно.

2. На вкладке «Data» задаем таблицы «Customer», «Orders», «Orders Detail», «Product» из базы данных Extreme.mdb.

3. На вкладке «Links» устанавливаем связи между таблицами «Customer» и «Orders» по полю Customer ID, «Orders» и «Orders Detail» по полю Orders ID, «Orders Detail» и «Product» по полю Product ID. По кнопке Next>> переходим на следующую вкладку.

4. На вкладке «Cross-Tab» заполняем области Rows, Columns и Summarized Field. Для этого в области Available Fields выбираем последовательно поля (рис. 25):


Рис. 25. Конструирование кросс-таблицы с помощью Мастера Cross-Tab

Region из таблицы «Customer» и щелкаем на кнопке Add Row,

Product Class из таблицы «Product» и щелкаем на кнопке Add Column,

Order Amount из таблицы «Orders» и щелкаем на кнопке Add Summarized Field.

Дополнительно на этой вкладке можно задать параметры сортировки и группировки — кнопка Group Options, добавить формулу к любому полю — кнопка New Formula, либо изменить итоговую операцию — кнопка Change Summary.

5. Щелчком по кнопке Next>> переходим на следующую вкладку «Style», где выбираем стиль оформления кросс-таблицы. Если ни один из стилей не подходит, то переходим на следующую вкладку «Customize Style», где задаем собственные параметры оформления кросс-таблицы: стиль и тип линий рамки, фон (рис. 26).


Рис. 26. Выбор пользовательского стиля оформления кросс-таблицы

6. Щелчком по кнопке Finish строим отчет. В окне Crystal Reports отчет представлен на вкладке «Preview», а его структура — на вкладке «Design».

7. Сохраним отчет в файле с именем REPORT_ CROSS_TAB.RPT для дальнейших упражнений.

При дополнительном форматировании отчета типа Cross-Tab с помощью инструментов форматирования Crystal Reports можно выполнять следующие действия:

регулировать ширину и высоту ячеек кросс-таблицы,

форматировать ячейки индивидуально либо группами,

выбирать цвет фона ячеек по целым столбцам/строкам и отдельно для общего итога,

форматировать линии сетки таблицы,

скрывать пустые строки, столбцы или соответствующие итоги,

при печати таблицы на нескольких страницах повторять на них заголовки строк.



Создание OLAP отчетов


Все более популярными источниками данных становятся Multidimensional Data (MMD) и Online Analytical Processing (OLAP). При создании отчета на базе OLAP-данных в Seagate Crystal Reports создается таблица, похожая на Cross-Tab отчет, но имеющая большую размерность. Можно создать один многомерный OLAP-отчет, либо несколько плоских таблиц отображающих тот же самый OLAP-отчет.

Для примера создадим OLAP-отчет на основе данных файла XTREME. HDC, хранящегося в папке OLAP Data.

1. По команде File—New открываем окно «Crystal Report Gallery», в котором выделяем строку OLAP. Щелчком по кнопке ОК запускаем Мастера «OLAP Report Expert».

2. На вкладке «Data» щелчком по кнопке Server Type открываем окно выбора типа источника данных «Choose OLAP Type», в котором выделим строку Holos HDC Cube

(рис. 27). Щелкаем по кнопке ОК..


Рис. 27. Выбор источника данных OLAP

3. В открывшемся окне «Browse for database» указываем файл-источник XTEREME.HDC, местонахождение которого можно задать с помощью кнопки Browse. Щелчок по кнопке Open окна «Add a Holos default file» вводит полный путь доступа к файлу в окно «Browse for database», а щелчок по кнопке ОК возвращает данные в поля вкладки «Data» (рис. 28).


Рис. 28. Вкладка «Data» с указанием файла-источника OLAP-данных

данных

4. Щелчком по кнопке Next>>

переходим на следующую вкладку «Rows/Columns», на которой определяется структура отчета. Для этого служат кнопки Add Row и Add Column (рис. 29). В добавленных измерениях можно определить поля, включаемые в отчет. Для этого выполняется щелчок по кнопке рядом с именем измерения, и в открывшемся окне со списком полей отмечаются все необходимые поля (можно использовать клавиши <Shift> и <Ctrl> для групповых выделений).


Рис. 29. Задание измерений для OLAP анализа

5. Щелчком по кнопке Next>>

переходим на следующую вкладку «Filter/Page», которая служит для выбора записей, включаемых в отчет, и определения полей, данные для которых размещаются на отдельных страницах


Щелчок по кнопке рядом с именем измерения, находящегося в области Filter, открывает окно «Select Fields for Dimension», в котором выделяем нужные поля, что позволяет выполнить фильтрацию записей. Щелчком по кнопке ОК закрываем окно выбора.

Аналогичные действия выполняются для измерения, перемещенного в область Page, что позволяет создать отдельные таблицы для выделенных полей.

6. Щелчком по кнопке Next>>

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

7. Щелчком по кнопке Next>>

переходим на вкладку «Customize Style», где можно задать цвет фона для каждой из размерностей и параметры сетки таблицы.

8. Щелчком по кнопке Next>>

переходим на следующую вкладку «Labels», на которой измерениям, указанным на вкладке «Filter/Page», можно присвоить метки.

9. Завершаем построение отчета щелчком по кнопке Finish.

10. Сохраняем отчет в файле REPORT_OLAP.RPT

Распространение отчетов производится через печать, факс, экспорт в другой формат, сохранение в виде файла в папке или на Web-сайте, просмотр через Web-броузер с помощью Report Viewer.

Для того чтобы вывести отчет на печать, следует выбрать команду File—Print—Printer.

Для отправки факса выполняют следующие манипуляции: по команде File—Printer Setup задают из списка значение Fax driver и щелкают по кнопке ОК. Затем выполняют команду File—Print—Printer.

Возможен экспорт отчетов в другие форматы (20 форматов и 6 получателей): Application, Disk file, MS Exchange folder, Lotus Domino, Lotus cc:mail, MS Mail — MAPI.

Для экспорта отчета следует:

выполнить команду File — Print — Export.

В окне «Экспорт» задать формат и назначение. Щелкнуть по ОК.

В окне «Format Options» задать параметры. Щелкнуть по ОК.

Окно «Exporting Record» информирует о процессе экспорта

Seagate Crystal Reports работают со всеми источниками данных от простых текстовых файлов до баз данных SQL Server. Все они разделены на четыре категории: файлы БД непосредственного доступа, ODBC источники данных, файлы Crystal SQL Designer, файлы Crystal Dictionary.

Специальный Crystal SQL Designer создает запросы к SQL базам данных или к источникам, доступным через ODBC, написанные на языке Structured Query Language (SQL).

Словари (Dictionaries) позволяют:

проектировать простые динамичные представления данных, необходимых для построения отчетов и запросов к ним,

организовывать удобное представление информации с изменением названий таблиц и полей для лучшего понимания пользователями назначения данных,

создавать сложные формулы для манипуляции данными, не требующие от пользователя понимания их строения.

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


Программное обеспечение Crystal Reports фирмы


Программное обеспечение Crystal Reports фирмы Seagate представляет собой инструмент для анализа и интерпретации информации, хранящейся в базе данных. Оно позволяет легко и быстро создать простые отчеты, а также имеет все необходимые инструменты для конструирования специализированных и сложных отчетов.
Так как отчеты предназначены, в первую очередь, для менеджмента и принятия решений на основе имеющейся информации, то прежде чем начать создание отчета, необходимо определить его цель и структуру, а также разработать прототип его содержимого. Чтобы отчет имел высокую эффективность, он должен содержать точные данные, отображенные в логически взаимосвязанной структуре; правильная формулировка цели создаваемого отчета является основополагающим шагом при его разработке.
Отчет может быть использован целым рядом сотрудников, каждый из которых будет стремиться найти в нем информацию, интересную именно для его. Поэтому необходимо включать в отчет данные, которые будут полезны различным категориям пользователей отчета.
При создании прототипа отчета следует начать с заголовка, который позже, разумеется, может быть изменен. В колонтитулах отчета может содержаться информация о дате создания, авторе, цели отчета, объеме использованных данных и т. п. Так как данные могут быть получены из различных источников, необходимо указать их происхождение: файл данных, база данных и ее тип, имена таблиц или запросов. В основную часть отчета помещают данные, содержащиеся в полях таблиц либо вычисляемые на их основе. При этом требуется определить, какие расчетные функции будут использованы и какие поля послужат в качестве аргументов. Необходимо проверить типы полей, на которых будут базироваться расчеты, на соответствие типам аргументов функций. Если данных много, то их графическое представление в виде диаграммам или географических карт может дать большую наглядность при анализе.
Очень часто в отчетах подводят итоги, а это требует сортировки и группировки данных различными способами. Кроме того, возникает необходимость отбора записей базы данных по различным критериям, что также должно быть определено на начальном этапе создания отчета. Чтобы обратить внимание читателей отчета на отдельные показатели, можно отметить их, причем отметка может зависеть от введенного критерия и будет появляться только там, где этот критерий принимает заданное значение. В качестве такой отметки может служить специальный символ, изменение размера или цвета шрифта, подчеркивание, рамки и другие средства форматирования, предоставляемые программой.


Если отчет предназначен для печати, то очень важно правильно расположить данные в областях отчета, чтобы они появились на бумаге в соответствующем порядке, расположились в нужном месте и имели бы правильный размер.
Как и все программные продукты, оперирующие базами данных, Seagate Crystal Reports дополнен примерной базой данных, которая иллюстрирует возможности продукта и позволяет обучиться работе с ним. Это файл в формате MS Access, который называется XTREME.MDB и расположен в папке C:\ProgramFiles\ SeagateSoftware\Crystal Reports\Samples\Databases\. На основе данных, помещенных в эту базу, построен целый ряд примеров отчетов, разделенных на две категории Feature Examples («Примеры особенностей») и General Business («Общеделовые»). Эти отчеты могут быть использованы при самообучении для знакомства с концепцией отчета в Crystal Reports и способами представления информации в его разделах, а также для знакомства с инструментами проектирования и оформления отчета, входящими в программу.
В качестве мастеров построения специализированных отчетов программа включает набор Report Experts следующего типа: Standard, Form Letter, Form, Cross-Tab, Subreport, Mail Label, Drill Down, OLAP. Наподобие мастеров в программах других производителей, они представляют собой диалоговое окно с набором вкладок, запрашивающих от пользователя информацию, необходимую при создании выбранного типа отчета.
Standard — наиболее общий из мастеров, вкладки диалогового окна которого характерны и для других мастеров. Они позволяют выбрать источник данных, связать таблицы в базе данных, добавить требуемые поля и определить характеристики группирования, подведения итогов и сортировки на основе заданных пользователем критериев. Вкладка «Style» содержит варианты предопределенных структур отчетов, которые можно использовать при его построении, чтобы добиться его компактности.
Создадим наш первый отчет на основе таблицы «Customer» базы данных Xtreme.mdb с помощью Standard Report Experts.
1. Выбором команды File — New либо щелчком по одноименной кнопке стандартной панели инструментов открываем окно «Report Gallery» (рис. 1), содержащее список Мастеров, и выделяем строку Standard.



Рис. 1. Окно выбора способа создания отчета
2. Щелчком по кнопке ОК
открываем окно «Standard Report Expert», на первой вкладке которого «Data» можно выбрать в качестве источника отчета базу данных, запрос или словарь.
3. Щелчком по кнопке Database открываем окно «Data Explorer» (рис. 2), в котором задаем тип источника данных и выбираем конкретную базу. Выделяя нужные таблицы файла базы данных, щелчком по кнопке Add добавляем их на вкладку «Data», а затем закрываем окно щелчком по кнопке Close.

Рис. 2. Выбор источника данных и таблиц для отчета
4. Переходим на вкладку «Fields» окна «Standard Report Expert», где, последовательно отмечая нужные поля, переносим их в область Fields to Display с помощью кнопки Add> (рис. 3). Кнопки под левой областью позволяют: найти поле по его имени — Find Field, просмотреть данные, которые содержатся в поле — Browse Data, вызвать вычислительную формулу по ее имени — Formula.

Рис. 3. Определение полей, используемых в отчете
5. При необходимости выполнить итоговые вычисления предварительно следует задать поля для группировки на вкладке «Group» с указанием способа их сортировки (например, поля Region и City таблицы «Customer»).
6. На вкладке «Total» (рис. 4) для каждого из полей группирования необходимо выбрать формулы и те поля, по которым будут вычислены итоги, в том числе общие итоги и расчет процентов. (При желании рассортировать данные в отчете по вычисленным итоговым значениям нужно заполнить следующую вкладку «Тор N».)

Рис. 4. Выбор полей и функций в группах для подведения итогов
7. Вкладка «Chart» служит для создания диаграмм на основе данных, помещенных в отчет, и ее мы рассмотрим позже.
8. Вкладка «Select» позволяет задать условия отбора записей базы данных. Можно не заполнять ее при использовании всех записей.
9. На последней вкладке «Style» задаем один из предопределенных стилей оформления отчета (рис. 5) и щелчком по кнопке Finish
строим отчет.

Рис. 5. Определение стиля оформления отчета
10. В окне Seagate Crystal Reports отчет представлен на вкладке «Preview», а его структура — на вкладке «Design».
11. Сохраним отчет в файле с именем REPORT2.RPT для дальнейших упражнений.

Рис. 6. Предварительный просмотр готового отчета в окне Crystal Reports
Теперь можно вручную видоизменять отчет, пользуясь инструментами Crystal Reports и вкладкой Design. А как это делать, мы и узнаем из следующего урока.
 

На вкладке Design представлена структура


На вкладке Design представлена структура отчета с размещением в его областях информации из базы данных (рис. 7). В этом режиме можно вручную изменять форматирование отдельных полей таблиц и вычислительных полей, удалять эти поля и добавлять новые, вставлять различные надписи и картинки. Чтобы хорошо представлять, как будет выглядеть отчет на бумаге (для контроля служит режим предварительного просмотра), следует познакомиться с характеристиками областей отчета и возможностью помещения в них информации различного вида. От того, в какую область включить поле формулы, диаграмму или кросс-таблицу, будет зависеть, сколько значений из базы данных будет использовано для их вычисления.


и денежных полей проще всего


Условное форматирование числовых и денежных полей проще всего выполнить с помощью окна «Highlighting Expert» (рис. 11). Оно вызывается выбором команды Format — Highlighting Expert и позволяет задать условие на значение поля и атрибуты его форматирования, действующие при выполнении условия. На одно и то же поле может быть наложено несколько условий, тогда их воздействие определяется порядком перечисления в области «Item list» окна «Highlighting Expert». Преимущество имеет формула, расположенная выше других. Для удаления заданного условия служат кнопки Remove или Remove All.
.


Вкладка «Common» окна «Format Editor»


Вкладка «Common» окна «Format Editor»

флажок Suppress

— позволяет скрыть объект (группу объектов), если в отчете он не должен быть представлен, но требуется для промежуточных вычислений;

флажок Suppress If Duplicated — позволяет распечатывать в группе повторяющихся значений только первое;

раскрывающийся список Horizontal Alignment — содержит возможные виды горизонтального выравнивания для выделенного поля;

флажок Keep Object together — позволяет распечатать все объекты области на одной странице (не работает, если они не помещаются на страницу);

флажок Close border on page break — завершает каждую из рамок, если обрамленный объект распечатывается на разных страницах;

флажок Can Grow — позволяет увеличить размер выделенной для поля области, если данные в нее не помещаются (в противном случае данные просто будут усечены); при установленном флажке становится доступным параметр Max number of lines — определяющий максимальное число строк, на которое будет расширено поле области (если 0, то без ограничений);

свойство Tool Tip Text — устанавливается с помощью Format Formula Editor, в окне которого вводится текст в кавычках; этот текст будет отображаться, если навести на объект маркер мыши и задержать его;

раскрывающийся список Text Rotation — содержит значения, которые можно использовать для текстовых объектов для их вертикального расположения.

Вкладка «Border» позволяет выбрать тип, цвет и оттенение рамок для выделения отдельных полей отчета и придания ему профессионального вида.

Вкладка «Font» задает атрибуты используемого шрифта, а вкладка «Paragraph Formatting» — установки для абзаца.