© Зайцев С.Л.
Многие компании отдают предпочтение хорошо зарекомендовавшему себя инструменту генерации отчетов Crystal Reports от компании Business Objects/Crystal Decisions, обеспечивающему высококачественное форматированное представление информации на базе накапливаемых в организации данных.
В большинстве случаев Crystal Reports работает с реляционными базами данных, но может также использоваться для создания высококачественных отчетов на основе кубов OLAP. Усовершенствования, введенные в версии 9, еще больше расширяют функциональные возможности программы в области создания OLAP-отчетов.
В статье описывается процесс создания набора отчетов на основе данных OLAP, а также способ объединения частей отчета, основанных на нескольких источниках данных OLAP, в один отформатированный отчет (см. рисунок 1). Здесь также представлены полезные советы, помогающие разработчику отчетов с максимальной выгодой использовать функциональность OLAP в программе Crystal Reports 9.
Рисунок 1 – Окно Crystal Reports с несколькими ракурсами данных OLAP.
В этом разделе вам предстоит создать отчет по сбыту, отображающий индикаторы сбыта, которые помогают менеджерам по продажам отслеживать характеристики сбыта различных продуктов. При создании такого отчета используйте мастер создания отчетов OLAP (OLAP Report Creation Wizard) для доступа к кубу OLAP “Sales Reports”, поставляемого в качестве сегмента источника данных Crystal Samples MS OLAP.
Рисунок 2 – Диалоговое окно создания отчетов Сrystal Reports.
Рисунок 3 - OLAP Connection Browser.
a. Выберите “Next” на экране “OLAP Data” в диалоговом окне мастера создания
отчетов (OLAP Report Creation Wizard). На экране появится диалоговое окно Rows/Columns.
Этот экран позволяет определить размерности строк и столбцов, которые будут
отображаться в таблице OLAP. Объекты таблицы OLAP обеспечивают фактическую
многомерную отчетность и используются для отображения и форматирования данных
OLAP, а также навигации по данным внутри OLAP-отчета.
Представленный по умолчанию формат “Rows/Columns” является основным форматом
куба.
б. Добавьте размерность “Version” в окне списка “Columns” и удалите оттуда
размерность “Measures”.
в. Добавьте размерность “Measures” в окне списка “Rows” после размерности “Products”.
г. Выберите в столбцах размерность “Version”. Нажмите “Select
Column Members”
и убедитесь в том, что выбраны элементы “Actual” и “Budget”. Нажмите “Cancel”.
a. На экране “Rows/Columns” диалогового окна мастера создания отчетов (OLAP
Report Creation Wizard) нажмите “Next” для вызова экрана “Slice/Page”. Этот
экран позволяет определить правила для размерностей, которые будут отображены
в строках или столбцах таблицы OLAP.
b. Выберите срез “Week=All Weeks” и нажмите “Select
Slice”. В диалоговом окне
“Member Selector” разверните дерево размерностей “All Weeks” (для этого необходимо
нажать на “+”) и выберите в списке пункт “week 40”. Нажмите “OK”.
c. Выберите срез “Year=All Years” и добавьте его в окно
списка “Page”. В диалоговом окне “Member Selector” выберите главный элемент
“All Years” и нажмите “Select > Move
Selection Down One Level”.
d. Разверните дерево размерностей “All Years” (для этого необходимо нажать
на “+”) и убедитесь в том, что отмечены элементы “Last Year” и “This
Year”.
Нажмите “OK”.
ПРИМЕЧАНИЕ Для создания параметризованного отчета, основанного на срезе и/или размерности страницы, просто используйте функцию “Link to Parameter” (для этого необходимо нажать на кнопку “Create/Edit”). Эта функция позволяет проектировщикам создавать отчет из данных OLAP, основанных на входных параметрах пользователя.
a. На экране “Slice/Page” диалогового окна мастера создания отчетов (OLAP
Report Creation Wizard) нажмите “Next” для вызова экрана “Style”.
б. Слева, в окне списка, выберите стиль “Basic – Gold” и нажмите “Finish”.
Будет активирован дизайнер Crystal Reports, при этом на экране появится ваш
отчет. Перейдите на закладку “Preview”, на которой представлены две таблицы
OLAP: одна – для прошлого года (“Last Year”), другая – для текущего года (“This
Year”).
a. Нажмите на закладку “Design” – появится экран “Design” с отображением формата
таблицы OLAP Grid.
b. Нажмите на ячейку Value, чтобы выделить ее. Увеличьте ее ширину с помощью
правой ручки.
c. Нажмите на закладку “Preview” – появится экран “Preview”. Дважды щелкните
на элементе строки “All Products” в таблице OLAP “Last Year”, чтобы развернуть
узел “All Parents” и отобразить все дочерние элементы в таблице OLAP.
Ниже, на рисунке 5, представлен экран “Preview” вашего OLAP-отчета. Отчет OLAP может иметь 4 вида размерностей: размерность строк, размерность столбцов, размерность среза и размерность страницы. Выбор зависит от количества размерностей, представленных в вашем кубе, и от параметров создания таблицы OLAP.
ПРИМЕЧАНИЕ Все OLAP-отчеты, их куб-образцы, пошаговые операции, примеры, диаграммы участия/вклада (Contribution Chart) для наглядности работы с инструментом генерации отчетов Crystal Reports версии 9 даны на языке оригинала. В необходимых случаях приводится их перевод на русский язык. При составлении примеров использованы данные для Северной Америки.
Куб-образец “Sales Reports” содержит 5 размерностей: Week (Неделя), Version (Версия), Year (Год), Product (Продукт) и Measures (Меры). А в нашем отчете OLAP представлены все 4 вышеописанных вида размерностей. Далее с помощью рисунка 5 дается описание каждого вида размерности.
Рисунок 5 – Экран предварительного просмотра таблицы OLAP (Preview).
Размерности строк и столбцов следует описывать одновременно, так как они функционируют одинаковым образом. По существу, размерности строк и столбцов – это те размерности, которые отображаются в строках и столбцах таблицы OLAP. Важный момент, на который стоит обратить внимание: с целью облегчения проведения анализа, просмотра большего объема данных в рамках одного и того же ракурса, сравнения схожих значений и т.п. вы можете добавить несколько размерностей в строки и/или столбцы вашей таблицы OLAP. Это называется “наложением” размерностей, и в нашем примере размерность строки “Measures” накладывается в рамках размерности строки “Products”.
Размерность “Measures” называется внутренней размерностью строки, а размерность “Products” – внешней размерностью строки.
Количество размерностей строк и/или столбцов, которые можно наложить, ограничивается только количеством размерностей, размещенных в кубе, и свободным местом в вашем отчете для отображения информации.
Размерностями среза являются те размерности, которые не отображаются в строках и столбцах таблицы OLAP. В нашем примере присутствуют следующие размерности среза - “Week” и “Year”. “Week” имеет срез на элементе недели “40”, в то время как “Year” разрезается на элементе “Last Year”.
Количество размерностей среза равно общему количеству размерностей в кубе за вычетом количества размерностей в строках и столбцах.
Размерности страницы соответствуют размерностям среза и позволяют создавать несколько отображений таблицы OLAP (одно отображение для каждого элемента размерности страницы).
В нашем примере (см. рисунок 6) размерностью страницы является размерность “Year”. Наличие элементов размерности страницы “Last Year” и “This Year” позволяет работать с двумя отображениями нашей таблицы OLAP, представленной на экране “Preview” (одно – для “Last Year”, другое – для “This Year”).
Рисунок 6 - Размерность страницы
Вы можете наложить несколько размерностей страниц в отчете OLAP, а также создать иерархическое дерево между элементами размерностей страниц, как показано на рисунке 7.
Рисунок 7 – Наложенные/вставленные размерности страниц.
Элементы размерностей можно организовать в иерархию. Например, для “Bakery” (бакалея): поля “Wine and Spirits” (вина и спиртные напитки) являются дочерними по отношению к верхнему основному полю “All Products” (все продукты).
При изучении описываемых в этом документе функциональных возможностей OLAP в области создания отчетов нетрудно заметить, что фильтрация, сортировка, форматирование, создание диаграмм/карт и другие виды обработки элементов таблицы OLAP контролируются иерархическим уровнем элементов.
Следует обратить на данный факт особое внимание, так как это позволяет вам очень быстро применять функциональные возможности OLAP по созданию отчетов к большим наборам элементов и при этом гарантировать получение оптимальных результатов.
Одним из нововведений 9 версии Crystal Reports является возможность добавления расчетов в таблицу OLAP. Эти расчеты сохраняются в отчете и обновляются при изменении данных этого отчета.
Давайте добавим в нашу таблицу OLAP Grid расчет отклонений для того, чтобы посмотреть, каких показателей достигли наши продукты.
Теперь расчет отклонений расположен в таблице OLAP после элемента “Budget” и мы видим, что положительное и отрицательное отклонение отличаются, независимо от того, какой критерий имеется в виду: “Sales” или “Cost”. В действительности, положительный результат для “Sales” означает то, что мы превышаем намеченный показатель, в то время как для “Costs” это означает, что мы потратили больше средств, чем было предусмотрено в бюджете. В следующем разделе мы добавим цветовое кодирование с целью различения плохих и хороших показателей.
В этом разделе мы раскрасим фон ячейки расчета отклонений в зеленый (положительный результат) или красный (отрицательный результат) цвет. Для этого необходимо добавить условное форматирование с помощью редактора формул и, так как здесь задействован определенный атрибут, для изменения “Background color” необходимо вызвать Formula Editor.
// positive variance for sales or margin if (CurrentFieldValue > 0 and GridRowColumnValue ("Version, level 0")="Variance" and (GridRowColumnValue ("Measures, level 0")="Sales" or GridRowColumnValue ("Measures, level 0")="Margin")) or // or negative variance for costs (CurrentFieldValue < 0 and GridRowColumnValue ("Version, level 0")="Variance" and GridRowColumnValue ("Measures, level 0")="Cost") // means a good result then crGreen // // negative else // negative variance for sales or margin if (CurrentFieldValue < 0 and GridRowColumnValue ("Version, level 0")="Variance" and (GridRowColumnValue ("Measures, level 0")="Sales" or GridRowColumnValue ("Measures, level 0")="Margin")) // or positive variance for costs or (CurrentFieldValue > 0 and GridRowColumnValue ("Version, level 0")="Variance" and GridRowColumnValue ("Measures, level 0")="Cost") // means a bad result then crRed else crWhite |
3. Нажмите на иконку “Save and Close”.
4. В редакторе форматирования (Format Editor) нажмите “OK”.
Ячейки таблицы OLAP окрашиваются в разные цвета в соответствии с логикой формулы (см. рисунок 8). Теперь пользователю легче определить, какие категории продуктов имеют хорошие или плохие показатели.
Рисунок 8 – Условное форматирование в столбце “Variance”.
Условное форматирование позволяет вам выполнять любое форматирование, необходимое вашим пользователям. В этом отдельном примере условное форматирование применяется на уровне ячейки с использованием формул.
Другим способом применения условного форматирования на иерархическом уровне является использование мастера выделения Highlighting Expert. Удобный в использовании Highlighting Expert позволяет одновременно изменять сразу несколько атрибутов форматирования – цвет шрифта, цвет фона, начертание шрифта и границы.
Для данных “This Year” вы увидите следующую таблицу OLAP (Рисунок 9).
Рисунок 9 – Условное форматирование в столбцах “Actual” и “Budget”.
Вы можете сразу заметить, что для данных “This Year” продажи “Frozen goods” и “Fruit and vegetable” не достигают намеченных показателей.
Если вы дважды щелкните на “Fruit and Vegetable”, вы получите разделение элемента на 2 подкатегории и заметите, что проблема заключается в категории “Fruit”.
Рисунок 10 – Развертка элемента “Fruit and Vegetable”
Все эти виды форматирования представляют собой форматирование на стадии проектирования и не требуют вызова реального источника данных. Это означает следующее:
Вы можете использовать функцию создания диаграмм по данным OLAP в Crystal Reports 9 в качестве мощного инструмента визуализации.
Возможности составления диаграмм зависят от формата таблицы OLAP, при этом для добавления функций создания диаграмм ваш отчет должен обязательно содержать определенную таблицу OLAP.
В этом разделе мы усовершенствуем отчет OLAP с помощью 2 видов диаграмм: круговой диаграммы и гистограммы.
В данном случае большой интерес представляет диаграмма участия, позволяющая увидеть, какой вклад вносит каждая категория продуктов в совокупный показатель. Для этого необходимо выполнить следующее:
a. Выделите всю таблицу OLAP, щелкните правой кнопкой мыши и выберите команду “Insert Chart”. На закладке “Type” необходимо выбрать вид диаграммы - “Pie”.
b. Перейдите на закладку “Data” и выберите “On change of” “Products, Level 2”.
c. Нажмите “Other dimensions” и убедитесь в том, что установлены следующие параметры: “Measures=Sales” и “Version=Actual”. Нажмите “OK”
d. На экране появится диалоговое окно “Chart Expert”. Нажмите “OK”. В вашем отчете будет создан раздел с круговой/секторной диаграммой участия (Contribution)
e. Для изменения названия диаграммы необходимо нажать на диаграмму и выбрать команду “Chart Options > Titles”. Переименуйте диаграмму в “Actual Sales Figures for Product Categories”. Нажмите “OK”.
f. Проделайте эту же операцию с диаграммой “This Year”.
Рисунок 11 – Круговая диаграмма с фактическими данными о продаже различных категорий продуктов в этом году.
Диаграмма “This Year” показывает, что категория “Фрукты и овощи” представляет собой важную сферу продаж для магазина (16.7% в этом году при 18.5% в прошлом году), в то время как категория “Замороженные продукты” не несет какого-либо стратегического значения (3.6% в этом году при 3.2% в прошлом году). Теперь мы сосредоточимся на анализе категории “Фрукты и овощи (Fruit and Vegetable)”.
Еще одной полезной диаграммой является диаграмма сравнения продаж “Actual” и “Budget”, позволяющая графически проиллюстрировать то, какие показатели продаж имеют те или иные категории продуктов. Для этого необходимо выполнить следующее:
a. Выделите всю таблицу OLAP, щелкните правой кнопкой мыши и выберите команду “Insert Chart”. На закладке “Type” необходимо выбрать вид диаграммы - “Bar”.
b. Перейдите на закладку “Data” и выберите “On change of” “Products, Level 2”. Выберите “Subdivided by” “Version, Level 1”.
c. Нажмите “Other dimensions” и убедитесь в том, что установлены следующие параметры: “Measures=Sales” и “Version=Actual”. Нажмите “OK”.
d. На экране появится диалоговое окно “Chart Expert”. Нажмите “OK”. В вашем отчете будет создан раздел со сравнительной гистограммой (Comparative)
e. Для изменения названия диаграммы необходимо нажать на диаграмму и выбрать команду “Chart Options > Titles”. Переименуйте диаграмму в “Actual vs Budget Sales for Product Categories”. Нажмите “OK”.
f. Проделайте эту же операцию с диаграммой “This Year”.
Рисунок 12 – Гистограмма с фактическими и планируемыми данными о продаже различных категорий продуктов в этом году (“This Year”). Фактические (Actual), Планируемые (Budget), Отклонение (Variance).
g. Сохраните новый отчет на рабочем столе и назовите его “Top Level OLAP Sales Reports”.
ПРИМЕЧАНИЕ Crystal Reports 9 позволяет включать в диаграмму значения вычисленных элементов. Однако это не относится данному примеру (из-за слишком большого масштаба диаграммы).
Вы можете добавить несколько кубов от одних и тех же поставщиков OLAP (MSOLAP, Crystal Holos, SAP BW, Hyperion Essbase, DB2, HDC) в один отчет OLAP, если ваши данные хранятся в различных источниках данных OLAP.
В этом разделе мы создадим новый отчет, чтобы продемонстрировать остальные функции OLAP, появившиеся в Crystal Reports 9.
Рисунок 13 – Таблица OLAP “Warehouse”
Рисунок 14 - Диалоговое окно селектора в размерности “Warehouse”.
Для изменения формата таблицы OLAP мы использовали рабочую таблицу Worksheet, вызванную через команду Launch Analyzer (закладка Cube View tab), однако, это также можно сделать и другим способом:
Чуть раньше мы убедились в том, как легко добавить в отчет какой-либо расчет. Давайте повторим операцию с расчетом участия, для того чтобы выяснить, какая страна вносит самый большой вклад в общий результат продаж.
Рисунок 15 - Таблица OLAP “Warehouse” с долями участия и итоговыми расчетами.
Еще одним способом визуализации данных в Crystal Reports 9 является функция создания карт на основе данных OLAP.
Функции создания диаграмм и карт во многом схожи. Также как и диаграммы, карты OLAP зависят от формата таблицы OLAP.
Программа Crystal Reports автоматически генерирует в вашем отчете карту “Cost by World” (см. рисунок 16).
Рисунок 16 – Карта складов (“Warehouse”) Cost by World.
Формат таблицы OLAP обеспечивает навигацию пользователя по объекту карты.
Для демонстрации этой функции можно было также использовать и объект диаграммы.
Рисунок 17 – Развернутая таблица OLAP “Warehouse”.
Здесь снова развертка одновременно выполняется и на карте.
Обратите внимание на то, что сворачивание иерархии до основного поля также отражается на формате карты.
Рисунок 18 – Карта складов в Мексике (“Warehouse”) с указанием затрат, продаж и прибыли.
Еще одна новая функция OLAP в Crystal Reports 9 – это возможность сортировки и фильтрации таблиц OLAP, позволяющая быстро преобразовать данные таблицы в более удобную форму.
Размерность “Warehouse” в таблице OLAP теперь развернута в достаточной степени (см. рисунок 17), чтобы применить фильтр, определяющий 5 самых рентабельных складов.
Для применения фильтра необходимо выполнить следующие шаги:
Теперь ваша таблица OLAP имеет следующий формат (см. рисунок 19).
Рисунок 19 – 5 самых рентабельных складов.
Вполне логично, что элементы “USA” и “Mexico” будут в начале списка, так как эти элементы занимают верхние иерархические позиции. Тем не менее, обратите внимание на порядок классификации штатов “WA”, “OR” и “CA”.
Обратите внимание на то, что расчет “Total” разделен на “Total Displayed” и “Total Excluded” для обеспечения целостности данных.
Тот же самый результат можно достичь, используя возможности сортировки:
Рисунок 20 – Таблица OLAP “Warehouse”, отсортированная по элементу “Profit” (сортировка по нисходящей).
Обратите внимание, что сортировка применяется внутри иерархии размерностей.
Рисунок 21 – Таблица OLAP “Warehouse”, отсортированная по элементу “Profit” (сортировка по нисходящей и разбивка иерархий).
В Crystal Reports 9 отчеты Crystal OLAP унаследовали функциональные возможности шаблонов отчетов. Шаблон – это файл отчета, форматирование которого может быть применено в отношении сразу нескольких отчетов. Теперь вам больше не нужно форматировать каждый из них по отдельности.
Чтобы применить к вашему отчету определенный шаблон, необходимо выполнить следующие шаги:
Образцы отчетов, представленные в этом документе на рисунке 1, были созданы с помощью шаблона “Block Sample (Blue)” и “Contrast Index Sample”.
В Crystal Reports 9 отчеты OLAP унаследовали функциональные возможности экспорта в рамках дизайнера, а также в рамках различных программ просмотра Crystal Enterprise.
В рамках дизайнера Crystal Reports доступны различные форматы экспорта:
В рамках программ просмотра Crystal Enterprise доступны различные форматы экспорта:
В Crystal Reports 9 отчеты Crystal OLAP также унаследовали функции ввода гиперссылок и возможностей Report Parts в рамках дизайнера, а также в рамках Report Application Server 9 (интегрируется с Crystal Reports 9).
Части отчета (Report Parts) – объекты отчета, которые могут отображаться в программе просмотра по отдельности (без остальных данных страницы отчета). Если быть еще более точным, части отчета представляют собой определения гиперссылки, указывающей путь от первичного объекта отчета до объекта назначения.
Это позволяет разработчикам отчетов создавать навигационные ссылки между объектами отчета в рамках одного и того же отчета или из/в другой существующий отчет.
Отчет OLAP распространяется через Crystal Enterprise так же, как и отчет по реляционным данным. Вы можете сохранить его в Crystal Enterprise APS непосредственно из дизайнера Crystal Reports или импортировать его в структуру Crystal Enterprise с помощью мастера Crystal Enterprise Publishing Wizard.
После импортирования в Crystal Enterprise отчет OLAP может быть “запланирован” (статические отчетные данные) или поставлен в очередь “до востребования” (динамические отчетные данные). Этот выбор будет зависеть от размера отчета, происхождения данных, конфигурации среды Crystal Enterprise и настроек Crystal Enterprise Administrator.
Как представлено в данной статье, некоторые ключевые компоненты и функции Crystal Analysis были внедрены в Crystal Reports для создания отчетов на стадии проектирования.
В некоторых случаях конечным пользователям могут потребоваться более динамичные функции анализа - например, интерактивная навигация по отчету, опубликованному в Crystal Enterprise, оперативное добавление расчетов, переориентация вида куба OLAP, реорганизация полей размерностей, цветовое кодирование ячеек и т.п. Данные мощные аналитические функции доступны в рамках программы Crystal Analysis Professional и ее дополнительных функциональных возможностей в области создания отчетов и анализа данных.
Crystal Reports и Crystal Analysis предназначены для решения разных задач в области генерации отчетов:
За дополнительной информацией обращайтесь в компанию Interface Ltd.
INTERFACE Ltd. |
|