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

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

Відтворення та поширення даної статті можливе за умови встановлення прямого посилання на даний портал  


Введення


Мета даної статті – проілюструвати і розглянути процес розробки звітів за допомогою системи 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.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*