Компания Seagate Software обеспечила несколько методов использования языка Visual Basic для создания пользовательского приложения со средствами формирования отчетов. Выбор метода, конечно же, зависит от многих факторов. Ниже, в таблице, перечислены методы, их преимущества и недостатки.
метод | преимущества | недостатки |
Report Engine API | Полностью предоставляет все функции Crystal Reports, доступные для программной модификации. Если какая-то функция хоть где-то реализована, она доступна и в Report Engine API | Наиболее сложный интерфейс как с точки зрения изучения, так и программирования. Часть функций API (в частности обслуживание событий отчета и мыши) требует программирования с использованием функций обратного вызова (Callback), другие используют сложные структуры, и работают с указателями на них. И то, и другое не так просто реализовать в Visual Basic |
Report Engine Automation Server | Сохранен для совместимости с более ранними версиями. Не рекомендуется для новых приложений. | |
Report Designer Component | В этом компоненте объединены возможности разработки и интеграции отчетов, причем все это полностью реализовано внутри IDE. Все операции по созданию отчета выполняются в рамках Visual Basic. Имеет свой собственный сервер Automation Server предоставляющий практически все функции Crystal Reports в рамках объектной модели свойства\методы\события | Большая сложность программирования (хотя и меньше, чем Report Engine API). При разработке отчета непосредственно в IDE Visual Basic отсутствует возможность предварительного просмотра отчета. |
Элементы управления ActiveX | Обеспечивают наиболее простой интерфейс программирования. Способ наиболее быстрого создания приложения с интегрированными отчетами. | Обладают пониженной по сравнению с другими методами функциональностью. Например, совсем не поддерживаются события отчета. Требуют наличия предварительно созданных отчетов (*.rpt-файлов). |
Во время выбора одного из интерфейсов следует учесть, что в конкретном приложении следует использовать только один из доступных интерфейсов. Нельзя использовать несколько методов в одном приложении. Например, вызов API при установленном элементе ActiveX приведет к ошибке. Оцените свои возможности и требуемую функциональность приложения, а затем выберите наиболее подходящий вариант реализации. Замена уже выбранного интерфейса приведет к существенной переработке приложения.
Давайте займемся всеми этими методами в порядке - от простого к сложному.