Dimdim SoftWare
Мастерская Dr.dimdim
ГлавнаяПоискНаписать письмо
ГлавнаяМоделированиеПроектированиеТЗРазработкаИнтерфейсСтатьиСсылкиАвтор
Главная > Статьи

Система Crystal Reports и службы Reporting Services

Автор: Валерий Зайцев ©

Источник: http://www.interface.ru/home.asp?artId=20239

Введение

Цель данной статьи - проиллюстрировать и рассмотреть процесс разработки отчетов с помощью системы Crystal Reports (CR) и служб Reporting Services (RS). Несмотря на то, что CR и RS представляют собой две различные технологии, результат их использования один и тот же: отчет. В статье одновременно выполняется сравнение и рассматривается разработка отчетов CR и RS.

Необходимо отметить, что в то время как отчеты Crystal Report - наиболее часто используемый инструментарий для создания отчетов общего назначения, службы Reporting Services гораздо проще в использовании, потому что можно иметь и график, и таблицу в одном и том же разделе отчета.

Разработка отчетов с помощью системы Crystal Reports и служб Reporting Services

Пусть необходимо разработать отчет о прибыльности продуктов, который отображает сведения о продуктах (себестоимость, цена и прибыль), хранящиеся в таблице Production.Product в базе данных AdventureWorks. В распечатке 1 показан исходный SQL-запрос.

select ProductID, [Name], [ProductNumber], StandardCost, ListPrice, ListPrice-StandardCost as Profit
from Production.Product;

Распечатка 1

Откройте приложение Visual Studio.NET и создайте проект Windows application с именем. Согласно принципу "модель-вид-контроллер" (MVC) в архитектуре решений, следует добавить библиотеку классов, в которой будут постоянно храниться компоненты уровня доступа к данным. Пройдите по пути File / New / Project из главного меню и добавьте к рассматриваемому решению новый проект Class Library.

http://www.interface.ru/iarticle/img/20239_56175565.gif 
Рис. 1

Далее добавьте в этот проект Class Library набор данных dataset со строгим контролем типов, представляющий собой набор результатов запроса для отчета (см. рис. 2).

http://www.interface.ru/iarticle/img/20239_56175566.gif
 
Рис. 2

Теперь добавьте адаптер таблицы и таблицу с основными данными, соответствующими запросу из распечатки 1 с помощью мастера конфигурации TableAdapter Configuration Wizard (см. рис. 3).

http://www.interface.ru/iarticle/img/20239_56175567.gif
 
Рис. 3

Далее, получив, таким образом, компонент уровня доступа к данным, следует перейти к уровню представления данных. Добавьте две формы Windows Form: одну для отображения отчета CR и еще одну - для отображения отчета RS. Затем добавьте в форму для RS элемент управления ReportViewer, перетащив Data/Report Viewer из окна Toolbox в область разработки, и затем закрепите его в форме (см. рис. 4). Аналогично добавьте в форму для CR элемент управления CrystalReportViewer, перетащив Crystal Reports/CrystalReportViewer из окна Toolbox в область разработки, и затем закрепите его в форме (см. рис. 5).

http://www.interface.ru/iarticle/img/20239_56175568.gif
 
Рис. 4

http://www.interface.ru/iarticle/img/20239_56175569.gif

Рис. 5

Далее следует разработка формата отчета. В отчете будут показаны названия отчета и компании в разделе заголовка отчета и список товарных позиций (в разделе данных).

Сначала добавьте отчет RS, щелкнув правой кнопкой мыши проект Windows в проводнике решений Solution Explorer и выбрав Add / New Item, а затем выберите Report в диалоговом окне Add New Item (см. рис. 6).

http://www.interface.ru/iarticle/img/20239_56175570.gif
 
Рис. 6

В отчете RS верхний и нижний колонтитул по умолчанию не видны. Поэтому выберите Report/Page Header в главном меню, чтобы сделать видимым верхний колонтитул отчета RS. Добавьте из окна Toolbox два элемента управления Textbox в верхний колонтитул и элемент управления Table в раздел заготовка. Настройте таблицу таким образом, чтобы она содержала шесть столбцов, по столбцу таблицы для каждого из столбцов данных. Затем добавьте к таблице поле данных, необходимое для ссылки на определение класса набора данных ProductProfitability. Перейдите в окно Data Sources и добавьте новый источник данных объекта, который ссылается на класс набора данных ProductProfitability (см. рис. 7).

http://www.interface.ru/iarticle/img/20239_56175571.gif

Рис. 7

Теперь можно перетащить поле данных из определения класса набора данных ProductProfitability в окно Data Sources в отчете (см. рис. 8).

http://www.interface.ru/iarticle/img/20239_56175572.gif
 
Рис. 8

Далее добавляются поля в раздел Table Details и форматируется шрифт заголовка Table Header как полужирный и подчеркнутый (см. рис. 9).

http://www.interface.ru/iarticle/img/20239_56175573.gif

Рис. 9

Теперь добавляется отчет CR. В проводнике решений Solution Explorer выберите проект Windows, щелкните его правой кнопкой мыши и выберите Add/New Item, затем выберите в диалоговом окне Add New Item (см. рис. 10).

http://www.interface.ru/iarticle/img/20239_56175574.gif
 
Рис. 10

После добавления отчета CR появится диалоговое окно Crystal Reports Gallery. Затем выберите параметр As a Blank Report. Появится новое окно Toolbox с именем Field Explorer, в котором отображаются сведения, доступные для разработки отчета CR.

При сравнении обоих отчетов обнаруживается, что отчеты RS изначально представляют собой свободную форму, в которую можно добавлять необходимые разделы. В отчете CR по умолчанию будут присутствовать верхние и нижние колонтитулы, даже если они не нужны. Необходимо отметить, что отчет CR имеет два набора верхних и нижних колонтитулов: один набор - для страницы, и другой - для отчета в целом. Нет необходимости добавлять в отчет верхний или нижний колонтитул, следовательно, перетащите два элемента Textbox из окна Toolbox в область разработки заголовка отчета.

Далее работа продолжится в разделе данных (теле) отчета CR. В отчете CR необходимо сослаться на источники данных, или, конкретно, на набор данных со строгим контролем типа. Данный шаг очень прост, достаточно щелкнуть правой кнопкой мыши внутри любого раздела и выбрать Database / Database Expert. Затем появится диалоговое окно Database Expert. Необходимо развернуть узел Create a New Connection / ADO.NET, появится новое диалоговое окно ADO.NET. Перейдите в местоположение, в котором хранится определение набора данных со строгим контролем типов (внутри проекта Class Library, см. рис. 11).

http://www.interface.ru/iarticle/img/20239_56175575.gif

Рис. 11

Затем щелкните кнопку Finish в диалоговом окне ADO.NET (см. рис. 12).

http://www.interface.ru/iarticle/img/20239_56175576.gif
 
Рис. 12

После этого в диалоговом окне Database Expert выберите набор данных, чтобы вновь сослаться на него (см. рис. 13).

http://www.interface.ru/iarticle/img/20239_56175577.gif
 
Рис. 13

Далее, также очень просто, поля для новой ссылки отображаются в раздел данных. Перетащите поля из окна Field Explorer в раздел данных отчета. Сразу после этой операции в разделе верхнего колонтитула автоматически появится соответствующий заголовок столбца (см. рис. 14).

http://www.interface.ru/iarticle/img/20239_56175578.gif
 
Рис. 14

Теперь необходимо настроить средство просмотра Report Viewer, чтобы связать источник основных данных с определениями отчетов.

Сначала - отчеты RS. В данном случае это очень просто. Откройте окно RS Form и щелкните контекстную метку элемента управления ReportViewer, чтобы выбрать отчет RS и связать источник данных отчета со своим источником прикладных данных. После выбора определения отчета RS с помощью VS.NET в области разработки Windows Form с помощью VS.NET также добавляется исходный объект для связывания. Затем добавьте в область разработки экземпляр набора данных со строгим контролем типов ProductProfitabilityDS и экземпляр адаптера таблицы ProductProfitabilityTableAdapter из окна Toolbox (см. рис. 15).

http://www.interface.ru/iarticle/img/20239_56175579.gif
 
Рис. 15

Наконец, сделайте ссылку на прежний набор данных из исходного объекта для связывания (см. рис. 16).

http://www.interface.ru/iarticle/img/20239_56175580.gif
 
Рис. 16

Последний шаг - заполнение данными экземпляра набора данных со строгим контролем типов ProductProfitabilityDS.

Далее настраивается элемент управления CrystalReportViewer. Откройте окно CR Form и щелкните контекстную метку элемента управления CrystalReportViewer, после чего выберите параметр Choose a Crystal Report (см. рис. 17).

http://www.interface.ru/iarticle/img/20239_56175581.gif
Рис. 17

После этого к области разработки добавляется новый объект ReportDocument. Затем добавьте в область разработки экземпляр набора данных со строгим контролем типов ProductProfitabilityDS и экземпляр адаптера таблицы ProductProfitabilityTableAdapter из окна Toolbox (см. рис. 18).

http://www.interface.ru/iarticle/img/20239_56175582.gif
 
Рис. 18

Последний шаг - заполнение данными экземпляра набора данных со строгим контролем типов ProductProfitabilityDS и связывание получившегося источника данных с экземпляром ReportDocument (см. листинг 2).

this.productProfitabilityTableAdapter1.Fill(this.productProfitabilityDS1.ProductProfitability);
this.ProductProfitability1.SetDataSource(this.productProfitabilityDS1.ProductProfitability as DataTable);

Заключение

В данной статье рассмотрены две самые распространенные методики создания отчетов на основе платформы .NET. Создан простой отчет и объяснены основные шаги, позволившие добиться этого с помощью системы Crystal Reports и служб Reporting Services.

 

Вверх

<<Назад

Главная| ИС.. | Моделирование | Проектирование | ТЗ | Разработка | Интерфейс | Статьи | Ссылки | Автор
DimDim SoftWare Мастерская Dr. dimdim Copyright 2003-2004
Администратор info-system@mail.ru
Последнее обновление 26-Дек-2003