Приложения Crystal Reports Server и BusinessObjects Enterprise XI

Оценить
(0 голоса)

Crystal Reports Server и BusinessObjects Enterprise XI содержат свой собственный набор интерфейсов для программирования объектной модели, которые также позволяют создавать Windows- и Web-приложения. Эти интерфейсы, рассмотрение которых выходит за рамки данной книги, посвященной исключительно Crystal Reports, позволяют полностью настраивать по своему усмотрению как механизм для просмотра отчетов, так и механизм для их автоматического запуска, а также систему их распространения, которая может интегрироваться в портал организации, в корпоративную сеть или на общедоступный Web-сайт.

Crystal Reports. В результате этого вы часто будете видеть опции справки как для Crystal Reports, так и для Crystal Reports 11.

Кроме этого, вы сможете создавать отчеты в автономной копии Crystal Reports XI, а значит, проектировать и предварительно просматривать их в интерактивном режиме, что, пожалуй, является самым главным преимуществом данного подхода по сравнению с использованием конструктора VS.NET IDE, который не поддерживает такой возможности быстрого проектирования/предварительного просмотра. После этого вы сможете просто импортировать свои готовые файлы .RPT в VS.NET для интеграции.

На заметку! Многие из приводимых в этой главе примеров взяты из образца VS.NET-приложения для Web, которое можно загрузить с Web-сайта издательства. Эти примеры разрабатывались в версии Crystal Reports Developer Edition, поэтому некоторые из демонстрируемых в них вызовов объектной модели требуют наличия дополнительных возможностей Crystal Reports XI. Такие вызовы специальным образом отмечены как в образце кода, так и в книге.

Windows Forms Viewer и Web Forms Viewer

Прежде всего, при интеграции отчета Crystal Reports в Windows- или Web-приложение посредством VS.NET, вы должны отделять фактический отчет (файл .RPT, который либо создается в VS.NET IDE, либо добавляется в эту среду после создания с помощью конструктора Crystal Reports) от модуля просмотра (viewer), который будет фактически отображать отчет конечному пользователю приложения. Если вы хотите включить отчет Crystal Reports как часть своего приложения, вам придется уделить много внимания эти двум разным объектам. Однако если вы хотите включить отчет в приложение только для того, чтобы его можно было экспортировать во внешний файл (например, чтобы его можно было сделать доступным на Web-сервере для загрузки или совместного использования где-нибудь в сети Web-cepeepa), то тогда, возможно, вам вообще не понадобится добавлять модуль просмотра, визуализирующий отчет для конечного пользователя.

Тем не менее, в большинстве случаев вам все-таки придется определять способ представления отчета конечному пользователю на Windows- или Web-форме. Для этого в VS.NET имеются специальные элементы управления Crystal Windows Forms Viewer и Crystal Web Forms Viewer. Перетащив элемент управления Crystal Windows Forms Viewer на Windows-форму или элемент управления Crystal Web Forms Viewer на Web-форму, вы сможете сразу же отобразить отчет Crystal Reports с учетом всех параметров форматирования. Эти модули просмотра также поддерживают все стандартные возможности для взаимодействия, предлагаемые Crystal Reports, а именно: они позволяют просматривать страницы по требованию, перемещаться по дереву групп, переходить на более высокий

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

Создав приложение для Windows или ASP.NET-приложение для Web (не важно, на каком языке — в среде VS.NET язык разработки для Crystal Reports значения не имеет), добавьте модуль просмотра в нужную форму, перетащив его из раздела Windows Forms или Web Forms панели элементов (Toolbox). Внутри формы появится небольшой контур объекта модуля просмотра, а в окне Properties (Свойства) — доступные для него свойства, как показано рис. 26.3.

Рис. 26.3. Компонент Crystal Web Forms Viewer в Web-форме

Однако если вы просто добавите модуль просмотра в форму, при запуске приложения в ней ничего отображаться не будет. Причина проста — вы должны связать фактический объект отчета Crystal Reports с модулем просмотра так, чтобы ему было что отображать.

На заметку! Отчеты Crystal Reports могут интегрироваться в VS.NET-приложения на основе Visual Basic, С#, Managed C++ или других языков, которые поддерживаются в среде разработке VS.NET. Однако в этой главе основное внимание будет уделяться только приложениям, которые используют Visual Basic, и только тем технологиям написания кода, которые доступны в Visual Basic.

Приложения Crystal Reports Server и BusinessObjects Enterprise XI

Способы связывания отчетов с модулем просмотра

Существует множество способов связать отчет с модулем просмотра. Выбираемый способ в основном будет зависеть от того, как спроектировано приложение: являются ли отчеты “внешними” для приложения (то есть хранятся ли они в каком-нибудь определенном файле или где-нибудь в сети), спроектированы ли они в VS.NET IDE или содержатся в компоненте Report Component (который более подробно будет рассматриваться далее в этой главе), хотите ли вы, чтобы для них использовалась функция кэширования отчетов только для Web (которая также более подробно будет рассматриваться далее в этой главе) и так далее.

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

•    Установите значение для свойства ReportSource модуля просмотра. Для этого сначала выделите объект модуля просмотра в VS.NET IDE. Затем в окне Properties (Свойства) отыщите свойство ReportSource. Щелкните на кнопке со стрелкой вниз и выберите опцию Browse (Обзор). На экране появится диалоговое окно открытия файла. Отыщите с его помощью файл .RPT, который должен отображаться в модуле просмотра.

•    Укажите имя файла в диалоговом окне DataBindings. Для этого сначала выделите объект модуля просмотра в VS.NET IDE. Затем в окне Properties отыщите свойство (DataBindings). Щелкните на кнопке со знаком троеточия, чтобы отобразить диалоговое окно DataBindings, как показано на рис. 26.4. В списке Bindable Properties (Связываемые свойства) выберите свойство ReportSource. Установите переключатель Custom Binding Expression (Пользовательское выражение связывания) и введите полный путь и имя файла (заключив имя файла в кавычки) в расположенном под ним поле.

Приложения Crystal Reports Server и BusinessObjects Enterprise XI

•    Установите значение для свойства ReportSource в коде. Связать отчет можно и во время выполнения путем указания значения для свойства ReportSource модуля просмотра. Например, вы можете отобразить окно редактирования кода для формы, содержащей модуль просмотра (отыскать в нем, к примеру, код события Page_Load) и тогда указать значение для свойства ReportSource следующим образом:

Private Sub Page_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load ' Здесь помещается пользовательский код инициализации страницы CrystalReportViewerl.ReportSource = "C:\Temp\FedEx Orders.rpt"

End Sub

В Web-приложениях, если вы свяжете отчет с модулем просмотра с помощью либо свойства ReportSource в окне Properties, либо в диалоговом окне DataBindings, отчет будет фактически отображаться в модуле просмотра в VS.NET IDE, как показано на рис. 26.5. (В Windows-приложениях отчет отображаться не будет.) Если вы укажете значение для свойства ReportSource модуля просмотра в коде, в VS.NET IDE (то есть во время проектирования) будет отображаться только небольшой контур объекта модуля просмотра без отчета внутри его формы. Однако при запуске приложения отчет появится в форме (правда перед этим, возможно, последует приглашение ввести данные удостоверения для подключения к базе данных и задать значения параметров).

Приложения Crystal Reports Server и BusinessObjects Enterprise XI

На заметку! Компонент Crystal Web Forms Viewer также имеет свойство AutoDataBind, которому по умолчанию присваивается значение True. Если по какой-то причине вы во время проектирования решите установить для этого свойства значение False, или если вы используете более старую версию компонента Crystal Web Forms Viewer, которая не поддерживает свойство AutoDa taBind, вы должны обязательно связать этот модуль просмотра с данными во время выполнения, вызвав метод Da taBind модуля просмотра после процедуры InitializeComponent, которая выполняется в событии Page_Init Web-формы.

Private Sub Page_Init(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form Designer.

'Do not modify it using the code editor.

InitializeComponent ()

CrystalReportViewerl.DataBind()

End Sub

Вы также можете связать с модулем просмотра отчет, который создали в VS.NET IDE (с помощью интегрированного конструктора отчетов, который более подробно будет рассматриваться далее в этой главе, в разделе “Интегрированный конструктор отчетов”). Или вы можете добавить в свой проект какой-нибудь существующий файл .RPT и связать его с модулем просмотра. Такие типы отчетов, которые находятся в проекте, называются строго типизированными отчетами, и для каждого из них в проект добавляется класс. В подобных случаях имя файла .RPT, содержащего строго типизированный отчет, который вы хотите связать с отчетом, будет отображаться в окне проводника Solution Explorer. Однако, что удивительно, если вы попытаетесь указать имя этого файла в качестве значения для свойства ReportSource модуля просмотра, в выпадающем списке доступных значений ни в окне Properties, ни в диалоговом окне DataBindings вы его не найдете.

Такой строго типизированный отчет может быть связан с модулем просмотра посредством всего лишь одной строки кода в событии Page_Load формы. Указывая для свойства ReportSource в качестве значения новый экземпляр подходящего класса отчета (без расширения .RPT), вы можете связать модуль просмотра с отчетом, включенным в проект.

' Связывание строго типизированного отчета CrystalReportl.RPT из окна проводника Solution Explorer

CrystalReportViewerl.ReportSource = New CrystalReportl

В Web-приложениях модуль просмотра также может связываться с кэшированной версией строго типизированного отчета. Помещение отчета в кэш может повысить производительность в случаях, когда к одной и той же содержащей модуль просмотра Web- странице доступ будут пытаться получить сразу несколько пользователей. Всякий раз, когда в проект добавляется строго типизированный отчет, для этого отчета также создается и кэшированный класс, который очень просто может быть связан с компонентом Web Forms Viewer.

' Связывание кэшированной версии файла CrystalReportl.RPT из окна ' проводника Solution Explorer

CrystalReportViewerl.ReportSource = New CachedCrystalReportl
Интегрированный конструктор отчетов
Выбор источника данных
Форматирование объектов и разделов
Сортировка и группирование

Добавить комментарий


Защитный код
Обновить