В столь неоднородной информационной среде значительно возрастает роль средств анализа и представления данных. Между тем проектирование и создание отчетов порой вообще не рассматривается при разработке программного обеспечения. Подобный подход лишает программиста (как правило, сотрудника информационного отдела учреждения, эксплуатирующего прикладное ПО) возможности применять такие передовые технологии, как наследование и компонентный подход, обрекая его каждый раз на создание нового отчета «с нуля».
Эту проблему эффективно решает пакет Visual RSL, разработанный компанией R-Style Software Lab. и распространяемый бесплатно (текущую версию можно найти по адресу www.bc.softlab.ru). Visual RSL — это объектно-ориентированный генератор отчетов, позволяющий использовать все преимущества компонентного подхода при решении задач анализа и представления информации, полученной в процессе работы с прикладным программным обеспечением.
Сущность компонентного подхода в Visual RSL
Рассмотрим процесс создания отчета с использованием компонентного подхода. Отметим, что каждый отчет состоит из компонентов двух типов:
- источники, которые занимаются получением данных от прикладных программных систем или СУБД и их предварительной обработкой;
- визуальные, отвечающие за предоставление конечному пользователю информации, полученной от источника данных.
Визуальные компоненты могут быть простыми (отображают часть информации из отчета) и сложными (состоят из десятков или даже сотен простых визуальных компонентов). Собственно говоря, отчет — это и есть сложный визуальный компонент. Таким образом, создание отчета превращается в процесс разработки сложного визуального компонента путем объединения в нем уже существующих простых.
Эффективное применение компонентного подхода легко проиллюстрировать на примере подготовки отчетов для налоговой инспекции. Несмотря на внешнее многообразие, почти все они имеют одинаковые элементы оформления и общие источники данных. Выделение таких частей в виде отдельных компонентов может значительно ускорить разработку всего комплекса налоговой отчетности. В итоге спустя некоторое время в распоряжении разработчика окажется достаточное количество компонентов (как источников данных, так и простых визуальных), позволяющих просто собирать новые отчеты, подобно тому, как строитель собирает дома из готовых блоков. Но одних только блоков для строительства целого здания недостаточно. Необходимо нечто, связывающее эти блоки друг с другом, т. е. нужен механизм, способный передать визуальным компонентам информацию, полученную от компонентов—источников данных.
Каждый компонент обладает собственным интерфейсом и некоторыми свойствами, называемыми в объектно-ориентированном программировании методами. Процесс формирования отчета заключается не только в сборке всех компонентов вместе, но и в создании интегрального интерфейса отчета, методы которого связывают все выбранные компоненты между собой. А поскольку отчет — равноправный компонент, к нему можно обращаться из любого программного продукта, поддерживающего работу с соответствующими интерфейсами.
Что такое Visual RSL?
Visual RSL — это среда разработки компонентов, предоставляющая в распоряжение разработчика набор базовых визуальных компонентов, достаточный для создания отчета. Еще более расширяет возможности программиста поддержка пакетом технологии ActiveX.
Каждый базовый компонент обладает собственным набором встроенных атрибутов, методов и событий. Например, визуальный компонент TABLELINE (одна строка таблицы) имеет широкий набор встроенных атрибутов, определяющих его внешний вид: размер, цвет фона, цвет текста, шрифт, набор ячеек. Разработчик создает свой компонент на основе базового, добавляя при необходимости новые атрибуты и методы, а также определяя реакцию на события.
Компоненты, созданные с помощью Visual RSL, могут использовать механизм перегрузки методов, позволяющий определить произвольное количество методов с одинаковым именем, но с разными параметрами. Кроме того, поддерживается механизм одиночного наследования, что означает возможность создания нового компонента путем наследования свойств и атрибутов уже существующего, переопределив необходимые методы.
Visual RSL поддерживает три языка программирования. Это прежде всего объектно-ориентированный язык Object RSL, позволяющий не только применять встроенные классы и функции, но и создавать новые макросы и типы данных, используя для этого как конструкции языка, так и динамически подключаемые библиотеки ActiveX или DLM (специальная технология написания расширений на базе языка Cи++).
Поддержка средой Visual RSL технологии ActiveX Scripting дает в руки разработчиков отчетов такие инструменты, как языки VBScript или JScript, причем выбор языка программирования влияет лишь на реализацию методов. Концепция наследования в свою очередь позволяет применять различные языки при создании базовых и производных компонентов. Например, от отчета, методы которого выполнены на Object RSL, может наследоваться новый отчет, методы которого реализованы уже на VBScript. При этом все правила наследования останутся неизменными.
Таким образом, пользователь получает готовые библиотеки компонентов, которые он может использовать при создании своих отчетов независимо от языка программирования, на котором они написаны.
Визуальная среда Visual RSL располагает всем необходимым для быстрой разработки как отдельных компонентов, так и полностью готовых отчетов. Можно создавать или наследовать новые компоненты от уже существующих, открывать и редактировать сохраненные ранее. События, методы и атрибуты компонентов представлены в виде иерархического списка (дерева), что позволяет не только видеть проектируемый объект в целом, но и изменять его. Отображение иерархии наследования демонстрирует атрибуты и методы базовых классов текущего компонента.
Visual RSL обеспечивает режим WYSIWYG («что видишь, то и получаешь»). Специальный «исследователь» (подобный Проводнику в ОС Windows 9x) поможет увидеть полную структуру компонента, все его атрибуты и методы, как встроенные, так и пользовательские, покажет всю иерархию наследования. Встроенные атрибуты могут быть изменены, а в специальных окнах можно наблюдать, как будет выглядеть проектируемый компонент при текущих значениях атрибутов.
Встроенный интерактивный отладчик предоставляет возможность пошаговой отладки создаваемого компонента, а также обеспечивает работу в режиме выполнения до специальных меток.
Visual RSL как часть информационной системы предприятия
Пакет Visual RSL поддерживает специальные компоненты доступа к данным через стандартный ODBC-интерфейс. Выбрав Object RSL в качестве языка реализации компонента, разработчик получает прямой доступ к данным, хранящимся в Btrieve, DBF или непосредственно к файловой системе. Кроме того, Visual RSL позволяет организовать доступ к данным с помощью объектов ActiveX Data Objects, которые являются частью технологии универсального доступа к данным, разработанной корпорацией Microsoft. В остальных случаях данные могут быть получены посредством специальных COM-объектов.
Отчет, подготовленный в Visual RSL, может быть представлен в любом виде: не только на экране или распечатанным на принтере, но и конвертированным в текстовый файл или форматы RTF и HTML. Последний заслуживает особого внимания, поскольку открывает возможность публикации отчетов, созданных с помощью Visual RSL, в Internet.
Любой компонент, разработанный в среде Visual RSL, является объектом ActiveX Automation, и с ним можно работать так же, как с объектом, реализованным на Cи++, Delphi или Visual Basic. Это значит, что разработчик создает набор компонентов, собирает из них готовый отчет и может вызывать его из приложения или с помощью любого другого инструмента, поддерживающего работу с объектами ActiveX.
Для того чтобы формировать отчеты по заданным шаблонам, пользователю не нужно устанавливать на свое рабочее место весь пакет. Он потребуется лишь при проектировании новых форм. n
ОБ АВТОРЕВиталий Волошин — руководитель проекта Visual RSL компании R-Style Software Lab.
Visual RSL в программных продуктах
Первая версия Visual RSL появилась осенью 1997 г., ее модификация — летом 1998 г.; в настоящее время доступна версия 2.0.
Сотни различных компонентов и несколько десятков отчетов спроектированы и разработаны для проекта «Универсальная бухгалтерия», реализованного в трехуровневой архитектуре. Всю информацию для формирования отчетов компоненты Visual RSL получают благодаря специальным прикладным объектам доступа к данным. Широкий набор специальных визуальных компонентов обеспечивает получение данных от прикладной системы. На основе библиотек этих компонентов разработаны наборы готовых отчетов. Часть отчетов вызывается из программ, реализованных на Visual C++, а часть — из функций, написанных на JScript и выполняющихся с помощью браузера Internet.
В рамках проекта «Кондор», представляющего собой аналитическое ядро банковского программного комплекса RS-Bank версии 5.0, разработчики предлагают генератор простых отчетов и генератор отчетов для анализа многомерных данных, которые создают компоненты Visual RSL в автоматическом режиме, т. е. без этапа программирования. Отчеты, созданные с помощью Visual RSL, обращаются за данными в СУБД Microsoft SQL Server или Sybase и вызываются с помощью программ, написанных на C++ Builder.
Кроме того, Visual RSL применяется для формирования отчетности в проекте RS-Dealing и еще в нескольких прикладных программных продуктах R-Style Software Lab., находящихся в стадии разработки.