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

Источник: c-sharpcorner

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

Воспроизведение и распространение данной статьи возможно при условии установки прямой ссылки на данный портал  

Введение

Цель данной статьи - проиллюстрировать и рассмотреть процесс разработки отчетов с помощью системы 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.

 
Рис. 1

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


 
Рис. 2

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


 
Рис. 3

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


 
Рис. 4
Рис. 5

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

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


 
Рис. 6

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

Рис. 7

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


 
Рис. 8

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

Рис. 9

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


 
Рис. 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).

 
Рис. 11

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


 
Рис. 12

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


 
Рис. 13

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


 
Рис. 14

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

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


 
Рис. 15

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


 
Рис. 16

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

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


Рис. 17

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


 
Рис. 18

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

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

Заключение

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


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=20239