События модулей просмотра

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

Вы можете не только присваивать значения свойствам модуля просмотра во время выполнения, но также и перехватывать события этого модуля просмотра. Поскольку Crystal Reports полностью интегрируется в среду .NET Framework, а значит и поддерживает все доступные в ней возможности для обработки событий, вы можете перехватывать события модуля просмотра в самом модуле просмотра и добавлять использующий их код. Выбрав нужный модуль просмотра в списке Class Name (Имя класса) в окне редактирования кода, вы сможете просмотреть список событий, которые инициирует данный модуль просмотра, в списке Method Name (Имя метода), как показано на рис. 26.18.

Рис. 26.18. Список событий, инициируемых выбранным модулем просмотра

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

Private Sub CrystalReportViewerl_Drill(ByVal source As Object, _

ByVal e As CrystalDecisions.Web.DrillEventArgs) _

Handles CrystalReportViewerl.Drill If e.NewGroupName = "USA" Then e.Handled = True End If

End Sub

В этом примере класс событий из пространства имен CrystalDecisions .Web отображает DrillEventArgs, а также различные свойства, для указания, что именно подвергается детализации. Далее выполняется проверка, выявляющая, не является ли выбранная для детализации группа группой “USA”. Если это так, детализации отменяется путем присвоения свойству Handled данного класса значения True.

События модулей просмотра

Настройка во время выполнения с помощью объектной модели Crystal Reports Engine (ReportDocument)

Пока что в этой главе речь шла только о способах настройки во время выполнения, подразумевающих применение объектной модели CrystalReportViewer (классы которой хранятся в пространстве имен Crystal Decisions .Windows .Forms или CrystalDecions .Web) и совместно используемой объектной модели (классы которой хранятся в пространстве имен CrystalDecisions . Shared). Однако существует еще одна объектная модель/пространство имен, классы которого могут использоваться для настройки поведения отчета во время выполнения.

С помощью объектной модели ReportDocument вы можете настраивать поведение отчета во время выполнения, применяя технологии, подобные тем, что описывались ранее в этой главе. Однако эта объектная модель (содержащаяся в пространстве имен CrystalDecisions . CrystalReports . Engine) предлагает свойства, методы и события, доступные только для базового объекта отчета, который вы интегрируете в свое

приложение, и никак не зависящие от модуля просмотра, КОТОРЫЙ ВЫ МОГЛИ Добавить в него. Также в случае, когда используется эта объектная модель, возможных способов настройки намного больше. Помимо возможности передавать значения полям параметров, предоставлять данные удостоверения и настраивать формулу выборки записей В отчете, модель Report Engine также предоставляет возможность управлять форматированием объектов, передавать формуле новое содержимое, экспортировать отчет в файлы различного формата и многое другое.

Любая настройка, подразумевающая использование этой модели, должна выполняться до связывания отчета с модулем просмотра (или когда в проект вообще не добавляется модуль просмотра). Все внесенные в объект отчета изменения вступят в силу только после того, как отчет будет связан с модулем просмотра (или, в случае приложения, в которое какой-либо модуль просмотра не добавлялся, при выполнении метода, распечатывающего отчет на принтере, экспортирующего его в какой-нибудь файл и тому подобное).

Как уже упоминалось ранее в этой главе, некоторые свойства и методы, доступные в объектной модели Report Engine, совпадают с теми, что доступны в объектной модели CrystalReportViewer. Например, предоставить данные удостоверения, создать формулу выборки записей и передать значения полям параметров можно посредством любой из этих объектных моделей. Выбор объектной модели будет зависеть от особенностей вашего приложения и того, насколько детализированными будут требования к интеграции. Опять-таки компания Business Objects рекомендует избегать дублированных вызовов из разных объектных моделей в одном и том же приложении. Поэтому, разрабатывая приложение, внимательно проанализируйте, какая из объектных моделей является наиболее подходящей (с точки зрения удобства и количества предлагаемых ею функциональных возможностей) с учетом существующих требований.

При желании воспользоваться моделью Report Engine, для начала проверьте, упоминается ли в вашем проекте пространство имен CrystalDecisions .CrystalReports .Engine.

В большинстве случаев вам также будёт необходимо и пространство имен CrystalDecisions. Shared. Как правило, эти пространства имен добавляются в проект автоматически, если в него добавляется модуль просмотра. Однако если вы разрабатываете приложение, не включающее модуль просмотра Web Forms Viewer, вам придется воспользоваться опцией добавления ссылки (в VS.NET), чтобы добавить эти пространства имен в свой проект. Также необходимо будет объявить в коде ссылки на несколько классов из этих пространств имен, чтобы иметь возможность ссылаться на них просто с помощью оператора Imports без указания полностью уточненных имен пространств имен.

При использовании модели Report Engine первым делом следует создать экземпляр объекта отчета. Как уже упоминалось ранее в этой главе, существует несколько способов добавить отчеты в проект. А также существует несколько типов отчетов (нетипи- зированные, строго типизированные и так далее), которые могут добавляться в проект. Представьте, что вы добавили в свой проект какой-то строго типизированный отчет, либо выбрав в контекстном меню пункт Add ^Existing Item (Добавить1^ Добавить существующий элемент) и указав подходящий существующий файл .RPT, либо выбрав в нем пункт Add^Add New Item (Добавить1^ Добавить новый элемент) и создав абсолютно новый отчет Crystal Reports. Теперь вы должны объявить объект, чтобы сослаться на этот строго типизированный отчет, и воспользоваться объектной моделью Report Engine. Вот как это можно сделать:

Dim Report As New Orders

' ссылается на строго типизированный отчет Orders.rpt в проекте

Как только вы объявите этот объект, в окне, отображаемом благодаря встроенной в VS.NET технологии Intellisense, появятся все предоставляемые объектной моделью Report Engine свойства и методы, как показано на рис. 26.19.

В следующих разделах описаны некоторые наиболее распространенные способы настройки во время выполнения, которые могут применяться вместе с объектной моделью Report Engine.

События модулей просмотра

Предоставление данных удостоверения для получения доступа к базе данных
Настройка формулы выборки записей
Изменение содержимого существующей формулы
Передача значений полям параметров
Передача текста текстовому объекту

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


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