Informix magazine
№3’98
Генератор отчетов Crystal Reports и продукты INFORMIX
Сергей Маклаков
Анатолий Корегин
В последние годы Crystal Reports - продукт фирмы Seagate Software стал
бесспорным лидером среди генераторов отчетов для среды Windows. Его формат
отчетов - .rpt –стал стандартом de-facto для западных промышленных систем.
Не случайно его версии включены в состав более чем 135 коммерческих продуктов
60 фирм, в том числе в такие известные в Росии бухгалтерские пакеты как
Scala и Exact Software. Crystal Reports - это приложение, которое может
извлекать данные из разнообразных источников и представлять их в виде высококачественных
отчетов, его модуль Report Engine может быть интегрирован в любое Windows
-приложение.
Crystal Reports позволяет слабоподготовленным пользователям быстро и
без особых забот составить простейшие отчеты , продвинутым пользователям
получить сложные аналитические отчеты, и разработчикам встроить в создаваемые
ими информационные системы отчеты Crystal Reports. Для каждой из этих категорий
пользователей Crystal Reports имеет специфические инструменты. Многочисленные
эксперты позволяют неопытному пользователю быстро создавать простейшие
отчеты. Мощный редактор формул, возможность задания переменных, множественные
секции отчета, подотчеты предназначены для более продвинутых пользователей.
Для разработчиков поставляются модули для включения отчетов в приложения,
написанные на популярных языках программирования – NewEra, C++, Visual
Basic, Delphi, и др.
Рассмотрим основные возможности Crystal Reports.
Быстрая разработка отчетов
Наличие большого количества экспертов (специальных средств для создания
отчетов в интерактивном режиме) позволяет даже неподготовленному пользователю
создавать необходимый отчет в короткие сроки.
Помимо галереи отчетов, которую Crystal Reports предлагает при создании
нового отчета, из меню Report|Report Expert доступен эксперт отчетов.
Основные типы отчета, доступные из галереи отчетов:
-
Стандартный отчет. При создании стандартного отчета вызывается эксперт
Create Report Expert, переключаясь между закладками которого можно быстро
создать не очень сложный отчет.
-
Отчет в виде письма. Crystal Reports содержит шаблоны различных типов писем.
-
Отчет в виде формы. Предварительное форматирование шаблона позволяет имитировать
экранную форму.
-
Матричный отчет (cross-tab) позволяет представить в более наглядном виде
информацию, хранящуюся в БД.
-
Отчет, содержащий подотчеты, позволяет скомбинировать в одном отчете совершенно
разнородные данные и связать данные из разнородный источников, например,
из таблиц INFORMIX и dbf-файлов.
-
Печать этикеток. При создании отчета в виде этикеток можно воспользоваться
несколькими десятками шаблонов для печати этикеток ( к дискетам, CD-дискам,
кассетам, конвертам и т.д. и т .п.).
-
Отчет TopN. Иногда возникает необходимость нестандартной сортировки групп.
Например, нужно показать три наиболее крупные по объему продаж страны,
остальные объединить в группу «Прочие». Для создания такого отчета служит
диалог TopN/Sort Group Expert (вызов из меню Report) c закладкой для каждого
суммирующего поля отчета. Заголовок каждой закладки - это имя поля, которое
ранее было определено как критерий группировки.
-
Специальный вид суммирующего отчета Drill Down, позволяющий одновременно
отобразить суммирующую информацию по отчету целиком и детальную информацию
по одной или нескольким группам.
Группировка и сортировка
Crystal Reports 6.0 имеет удобные средства для группировки и сортировки
данных. Вызвать диалоги, задающие порядок сортировки и группировки можно
через пункты меню Report|Sort Records.. и Insert|Group… соответственно.
В каждой группе можно указать суммирующее поле, группы можно сортировать
по значениям суммирующих полей, причем возможен режим Top N (см. выше),
когда, например, можно сгруппировав города по странам, показать N стран,
имеющих наибольшее население, остальные страны объединить в группу «Прочие»
(Report|TopN/Sort Group Expert…). Эта функциональность дублирована кнопками
дополнительной панели инструментов Supplementary Tools.
Форматирование объектов
Кроме возможности сложной сортировки и группировки в дополнительная панель
инструментов позволяет осуществлять сложное форматирование объектов. Кнопка
Свойства Объекта вызывает редактор формата который будет работать с выделенным
объектом. В зависимости от содержания поля в отчете, можно скрыть его,
выровнять содержимое поля по правому или левому краю и т.д.
Перемещение объектов между отчетами
Crystal Reports версии 6.0 позволяет открыть несколько отчетов и перемещать
объекты между отчетами (Drag and Drop). Кроме того, можно перемещать объекты
между отчетом и приложением, работающим как OLE-сервер (например, MS Word
или MS Excel).
Просмотр отчета и навигация
Crystal Reports работает с «живыми» данными, другими словами можно в режиме
просмотра данных (в окне просмотра Preview Window) продолжать редактировать
свой отчет. При переходе в режим просмотра Crystal Reports прочитает данные
и отразит их на первой странице. Прочие страницы будут показаны только
при пролистывании. Такой алгоритм позволяет сократить время ожидания при
отображении больших отчетов. В окне просмотра можно производить многие
операции из режима разработки - построение отчета, группировка, суммирование
и форматирование. Status bar в Preview Window дает информацию об использованных
в отчете данных. Однако, если отчет, содержащий сгруппированные по какому
– либо признаку (например, – по стране) данные, занимает несколько страниц,
работать с ним становится неудобно – трудно сразу найти нужную группу.
Выходом может быть создание суммирующего отчета, содержащего итоговые показатели
по группам (названия стран и количество населения в каждой стране), причем
детальная информация может быть получена для отдельно взятой группы при
помощи отчета Drill Down. (Отчет Drill Down можно сгенерировать автоматически
- дважды кликнув на строчку суммирующего отчета в режиме просмотра). В
Crystal Reports 6.0 имеется дополнительный инструмент для работы с громоздкими
сгруппированными отчетами – Group Tree View. Это окно в стиле Explore,
в котором в виде дерева групп отображается содержимое отчета. При этом
возможность генерации отчета Drill Down сохраняется.
Изменения в DB Grid отражаются в режиме просмотра
DB Grid - excel»еподобная сетка, которую разработчики могут разместить
на отчете, позволяет пользователям рассмотреть данные в колонках и строках.
Сетка обеспечивает пользователей знакомым и простым интерфейсом для просмотра
данных из базы данных. Часто пользователи изменяют формат сетки, изменяют
калибровку колонки и т.д. чтобы показать только те данные, которые они
желают видеть. Эти изменения формата отражаются в режиме просмотра, что
позволяет разработчикам проектировать отчеты более высокого качества, с
более дружественным интерфейсом.
Query Designer
Query Designer-модуль, значительно облегчающий работу с SQL - источниками
данных. С его помощью в интерактивном режиме несложно построить SQL- запрос,
который в дальнейшем можно использовать в любом отчете.
Подотчеты, множественные секции, форматирование секций по условию
Начиная с версии 5.0, в Crystal Reports включены уникальные средства представления
данных - форматирование секций отчета по условию (то есть, в зависимости
от содержания полей отчета), множественные секции, подотчеты (subreports).
Возможность включения подотчетов означает, что на одной странице можно
располагать несколько как связанных, так и несвязанных отчетов, в том числе
отчетов, содержащих деловую графику и матричные (Crosstab) отчеты. Сочетая
возможность создания множественных секций и форматирования их по условию
(в качестве условия можно задавать формулу любой сложности), можно реализовать,
например, печать отчета, содержащего название страны и дату, причем дата
может печататься в том формате, который принят в данной стране.
Мощные средства обработки и разностороннего представления данных
Crystal Reports имеет огромный набор встроенных функций для обработки данных,
в том числе специализированные функции статистического и финансового анализа.
В версии 6.0 реализована возможность подключения UDF (определенная пользователем
функция ) или UFL ( библиотеки функций пользователя ) - формул, которые
разработчики сами создают, чтобы использовать в приложении. UFL разработчики
могут писать на C ++, VB и Delphi.
Распространение отчетов
Панель инструментов Supplementary Tools содержит кнопки Компилирование
отчета (Создает EXE-файл отчета) и Распространение отчета (Собирает файлы,
необходимые для выполнения отчета). Исполняемый модуль для запуска отчетов
распространяется бесплатно. Отчеты, созданные в Crystal Reports 6.0 могут
распространяться следующими способами:
-
По электронной почте (Crystal Reports интегрируется с популярными системами
электронной почты- MAPI, VIM, Notes, Microsoft Exchange);
-
Экспорт в HTML для публикации на Web сервере;
-
Экспорт в популярные форматы - Exel, Lotus 1-2-3, Microsoft Word, WordPerfect,
ODBC, ASCII;
-
Экспорт или распространение по электронной почте отчета с данными для последующего
анализа;
-
Компилирование для свободного распространения.
Доступ к INFORMIX
Seagate Crystal Reports обращается к БД INFORMIX через ODBC. При этом на
той же машине должна быть установлена клиентская часть INFORMIX ( INFORMIX-NET)
32-разрядная версия Seagate Crystal Reports использует 32-разрядный
драйвер ODBC и библиотеку CRINF509.DLL.
Crystal NewEra Class Library Overview
Библиотека Crystal Class Library for NewEra разработана специально для
пользователей Informix NewEra. Библиотека содержит два первичных класса
и несколько вспомогательных. Для просмотра отчетов в пользовательском приложении
методы классов обращаются к Crystal Report Engine API. Crystal Class Library
for NewEra устанавливаются при инсталляции Seagate Crystal Reports. Файлы
(*.4GH) устанавливаются в каталог \CRW\INFORMIX\CLASS\INCL, файлы источников
(*.4GL) – в \CRW\INFORMIX\CLASS\SRC. Для просмотра отчетов с помощью Crystal
Report Engine из приложения необходимо скопировать эти файлы вместе с файлами
CRPE.H и CRYSTAL.4GH в тот же каталог, что и приложение NewEra.
Crystal Report Engine API
Как было указано выше, методы, содержащиеся в классах библиотеки Crystal
Class Library for NewEra,напрямую обращаются к функциям Crystal Report
Engine API.
Crystal Class Library for NewEra содержит два базовых класса. Класс
CRPEngine разработан так, что только один объект CRPEngine может быть встроен
в приложение. Объект CRPEngine содержит методы, которые обеспечивают полную
функциональность печати (в том числе связь с БД, информацию о версиях и
т.д).
Более важно, он отвечает за создание и управление всеми объектами CRPEJob.
Объект CRPEJob предоставляет доступ к атрибутам задачи печати. Для
того, чтобы открыть специфичный отчет первоначально необходимо иметь в
приложении открытый объект Crystal Report Engine. Вы можете затем вызвать
CRPEngine::OpenJob для спецификации имени файла отчета. В успешном случае,
Ваш указатель вернется на объект CRPEJob. С его помощью Вы можете изменять
атрибуты задачи печати так же, как и выводить отчеты в различных форматах.
Почти все из этих методов соответствуют схожим функциям, доступным в Crystal
Report Engine API.
Использование Crystal Report в проектах с Informix
В качестве одного из успешных примеров можно привести автоматизированную
систему ProFIX\Bank фирмы Profix (Киев), разработанную для банковских учреждений.
ProFIX\Bank разрабатывалась как фундамент для построения комплексной
системы автоматизации банковской деятельности со встроенными языковыми,
информационными и отчетными функциями. Одно из основных требований – возможность
интегрировать в единую систему приложения различных разработчиков.
Большое количество таблиц (около 150) увеличило необходимость использования
специальных средств генерации отчетов. Использование Crystal Report позволило
реализовать максимально гибкий механизм подключения отчетов и предоставить
пользователям самостоятельно разрабатывать новые и модифицировать стандартные
отчеты, использующие данные из разнородных источников. Дополнительное применение
Crystal Info позволяет реализовать системы поддержки принятия решений (OLAP-технологии),
а также автоматическое создание нужных отчетов в формате HTML с последующим
их размещением, например, на корпоративном Web-сервере.
В другом примере, большинство отчетов в биллинговой автоматизированной
системе одной из российских телекоммуникационных компаний, база данных
которой пополняется ежемесячно более чем на 500 тысяч записей, были в минимальные
сроки
реализованы с помощью Crystal Report.
Координаты авторов:
Учебно-консалтинговый центр Interface Ltd., тел. (095)135-55-00, 135-25-19,
mail@interface.ru
Interface Ltd.