Створення звітів в засобах розробки Microsoft, Різне, Інтернет-технології, статті

Сучасні програми надають безліч способів доступу до цікавить користувача інформації. Для роботи з даними розробляються спеціалізовані програми. Звичайні офісні засоби, такі, як Microsoft Office, Містять інтегровані можливості для отримання даних. В кінцевому рахунку завжди можна попросити адміністратора витягти з бази даних ту інформацію, яка в даний момент необхідна користувачеві.

Проте найбільш поширеним і звичним способом роботи з різноманітною інформацією залишається традиційна звітна форма. З одного боку, багато користувачів, особливо старшого покоління, все ще не знаходять в собі сил відмовитися від стандартної паперової форми подання звіту. З іншого боку, звіт – це насамперед засіб консолідації інформації, часто різної специфіки.

Вимога надати звітну функціональність часто фігурує при розробці сучасних програмних продуктів. В кінцевому рахунку все це призвело до того, що ринок виявився буквально затоплений як компонентами для надбудови додатків засобами підтримки звітів, такими, як інструментарій Databeacon, Так і досить потужними продуктами, що підтримують цикл управління звітами, де в числі лідерів слід назвати широко відомі продукти Business Objects.

Подібні засоби є і в складі Microsoft Visual Studio .NET (VS.NET). Одне з них, зване Crystal Reports for Microsoft Visual Studio .NET (CRVS), – це розробка Business Objects і поставляється за схемою ліцензування. Інше засіб, Microsoft Reporting Services (MSRS), являє собою повноцінну платформу, що базується на СУБД Microsoft SQL Server.

Crystal Reports for Microsoft Visual Studio .NET


Побудова звітів


Історія зв’язку продуктів Crystal Decisions (див. також врізку “Продукти Crystal Reports”) із засобами розробки Microsoft веде свій початок з 1993 р. Саме тоді компоненти Crystal Reports вперше з’явилися в Visual Basic 3.0. З 1996 р. ПО Crystal Reports входить до складу пакета засобів розробки Visual Studio, а в 2002 р. стало частиною VS.NET і .NET Framework, Отримавши при цьому офіційна назва CRVS. Поява компонентів Crystal Reports було відзначено в VS.NET 2003, і, цілком ймовірно, вони увійдуть до складу виходить в цьому році VS.NET 2005.

Основне призначення компонентів CRVS – підтримка розробки звітної функціональності програми. Передбачається, що відповідно до вимог буде розроблений спеціалізований шаблон звіту – файл з розширенням. rpt, що задає розміщення даних на сторінці звіту (рис. 1). Крім того, шаблон вказує, які структури даних служать джерелом для даних звіту. Надалі шаблон передається на вхід компонентам CRVS, які витягують дані з джерела і на їх підставі формують структуру підсумкового звіту. Для відображення звіту служить спеціальна програма перегляду (viewer), яка вбудовується в розробляється (підтримуються як Web-, так і Windows-програми).







Fig.1 
Рис. 1. Архітектура Crystal Reports for Microsoft Visual Studio. NET.


Фактично процес розробки зводиться до виклику кількох рядків коду, велика ж частина роботи виконується за допомогою “Дизайнера звітів”, вбудованого в VS.NET. Таким чином, для створення шаблона звіту не потрібно вміти програмувати на платформі Microsoft. NET (MS.NET). При бажанні шаблон звіту можна включити до складу програми, надавши можливість його змінювати. Це дуже зручно, тому що в цьому випадку процедуру супроводу розробленого додатка завжди можна доручити інженерові по впровадженню.

Як говорилося вище, компоненти CRVS можна використовувати для розробки як Web-орієнтованих, так і звичайних Windows-додатків, званих останнім часом модним словом “розумні” (smart) додатка. З точки зору роботи з даними компоненти Crystal Reports можна використовувати в двох режимах роботи – Push Model і Pull Model.

Push Model – модель роботи з проміжною структурою даних. При цьому дані для звітів формуються у вигляді звичної для. NET Framework структури даних, званої DataSet. Додаток бере на себе всю логіку підготовки вхідних даних для побудови звітів. Це зручно тим, що дані можуть бути сформовані абсолютно будь-яким способом, а не тільки за рахунок прямого доступу до джерела даних. Тим не менш, якщо звіт виходить досить великим, доводиться заповнювати досить громіздку структуру.

Pull Model – запит даних за вимогою. В цьому випадку шаблон звіту, переданий компонентів Crystal Reports, бере на себе роботу, пов’язану з отриманням даних з джерела. Даний підхід дуже ефективний для відображення багатосторінкових звітів, так як при цьому з джерела витягуються тільки дані для відображуваних сторінок.

Крім формування та відображення звіту, компоненти CRVS підтримують експорт отриманих даних у формати PDF, HTML, XLS, RTF і DOC, який може виконуватися програмно, що дозволяє повністю приховати використання додатком компонентів Crystal Reports. В цьому випадку програма може створювати необхідні файли звітів прямо в каталозі файлової системи. Це дуже зручно для пакетного режиму створення файлів звітів, коли користувачеві потрібно сформувати групу звітів без їх попереднього перегляду для подальшої передачі результатів зацікавленим особам.

Відзначимо коротко достоїнства і недоліки CRVS. Безсумнівна перевага полягає в тісній інтеграції як с. NET Framework, так і з VS.NET, що дозволяє розробнику програми створювати звіт, не відриваючись від засобів розробки. Рішення на основі компонентів CRVS непогано масштабуються, оскільки це властивість закладено в архітектуру як Crystal Reports, так і Microsoft. NET. Не викликає труднощів реалізація складних та інтерактивних звітів, якщо “кубики” для їх створення, такі, як інтерактивні керуючі елементи, уже присутні в CRVS.

А тепер “ложка дьогтю” – мова піде про ліцензування CRVS. Ліцензія на даний продукт, що поставляється з VS.NET, обмежує його використання тільки однопроцесорними робочими станціями. Крім того, підтримується одночасний запит на побудову звітів не більше п’яти користувачів (five-user license). У разі необхідності додаткові ліцензії можна придбати окремо, проте це обмеження знижує масштабованість рішень, що використовують CRVS. Інформацію про підтримку та ліцензування CRVS можна знайти за адресою.

Відносний недолік даного продукту – ретельно приховувана його виробником реалізація ядра компонентів на попередньому поколінні технологій Microsoft (він розроблений з використанням Win32 та мови C + +). Класи. NET, “обертаючі” виклики бібліотек динамічного завантаження, роблять програмне використання Crystal Reports досить простим. Однак працює в ядрі некерований (unmanaged) код може привести до нестандартних інфраструктурним проблемам, таким, як конкурування динамічної збірки сміття в платформі. NET і традиційного алгоритму роботи з пам’яттю. Рухаючись по шляху вирішення цієї проблеми, виробник почав поступовий перехід на платформу. NET, випустивши в рамках версії 1.1 (постачається в складі VS.NET 2003) компоненти, некерований код яких поміщений прямо в збірки. NET. Ця модифікація повинна принаймні спростити процедуру розгортання, дозволяючи переносити з додатком, що використовують компоненти Crystal Reports, тільки збірки. NET. Очікується, що повний перехід CRVS на платформу . NET буде завершено у версії 2.7, яка, цілком імовірно, увійде до складу VS.NET 2005.

Незважаючи на те що архітектура компонентів CRVS дозволяє організувати сценарій багаторівневого розподілу процесів формування підсумкового звіту, все ж даний продукт не підходить для організації всього циклу управління звітами. Для вирішення цього завдання призначена платформа MSRS *.

* CRVS має ще те гідність, що ці засоби інтегровані в Visual Studio. NET і поставляються в складі видання Professional. Щоб розширити свої можливості, розробник може перейти до повнофункціональним комерційним версіями продуктів Crystal Reports. – Прим. ред.

Приклад використання


Як приклад подивимося, у що обійдеться реалізація простого звіту, що містить одну таблицю. Уявімо собі, що існує база даних Microsoft SQL Server, що містить дані про поточний рівень технічних знань персоналу. Для кожного співробітника в базі зберігається список технологій, якими він володіє, а також рівень володіння ними. Рівень володіння відображається за допомогою однієї з двох оцінок: самооцінки (Даної співробітником самому собі) і “оцінки 360”, отриманої в результаті опитування людей, що працюють спільно з цим співробітником.

Оцінки співробітників можна розділити на п’ять основних типів (в порядку убування знань):


Завдання полягає в наступному: керівнику підприємства необхідно дізнатися, хто із співробітників найкраще знайомий з Microsoft Project – широко відомим продуктом для планування. Список працівників потрібно відсортувати в порядку убування знань. Для спрощення завдання використовуємо режим Push Model, т. е. в якості відправної точки візьмемо готову структуру даних (DataSet).

Створення звіту починається з підготовки його шаблону. Для цього скористаємося “Дизайнером звітів” (рис. 2). Щоб отримати зв’язок з даними в джерелі, слід імпортувати структуру даних у шаблон звіту. Після цього в лівій верхній панелі ми побачимо структуру, а також набір полів, який в неї входить. Розміщуючи поля на сторінці звіту, ми пов’язуємо дані у джерелі з їх розміщенням в шаблоні звіту. Для конструювання складних звітів можна використовувати елементи управління, розташовані на лівій нижній панелі.







Fig.2 
Рис. 2. Створення звіту за допомогою “Дизайнера звітів” Crystal Reports.


В результаті роботи “Дизайнера звітів” виходить файл з розширенням. Rpt, що містить створений дизайн шаблону звіту. Для відображення звіту слід включити до складу програми програму перегляду, звану CrystalReportViewer і знаходиться в просторі імен CrystalDecisions.Web – для Web-додатків і CrystalDecisions.Windows.Forms – для Windows-додатків.

Потім необхідно виконати кілька простих дій:


При відображенні звіту оглядач використовує компоненти CRVS, структуру даних і шаблон для відображення готового звіту (рис. 3).







Fig.3 
Рис. 3. Вид готового звіту (варіант для Web-додатки).







Продукти Crystal Reports


З моменту свого виходу на ринок на початку 90-х років програма Crystal Reports зайняла лідируючі позиції в сегменті засобів формування звітів і утримує їх досі. Багато в чому цей успіх забезпечений довголітнім співробітництвом її розробника (спочатку Crystal Services, потім Crystal Decisions) з провідними постачальниками засобів розробки і СУБД: ще в середині 90-х OEM-версія Crystal Reports входила до складу майже 150 продуктів кількох десятків виробників (Microsoft, Borland, Sybase і т. п.) і вже давно стала стандартом де-факто для Windows-розробників. За 10 років присутності Crystal Reports на ринку було продано понад 4 млн ліцензій.

На початку століття Crystal Decisions пропонувала на ринку три основних продукту: Crystal Reports, Crystal Analysis (бізнес-аналітика) і Crystal Enterprise (Інструментальна Web-платформа для різних архітектур – Java,. NET, COM), які поставлялися також в складі об’єднаного пакета Crystal Suite. В кінці 2003 р. Crystal Decisions була куплена компанією Business Objects, яка випустила нову версію Crystal Suite 10. У січні 2005 р. на ринок вийшла наступна версія продукту, але вже під новою торговою маркою – BusinessObjects XI. Crystal Reports 11 також випускається як окремий продукт в кількох виданнях – Standard, Professional, Developer, Advanced Developer.

Варіант Crystal Reports for. NET 2003 (крім VS.NET, він входить до складу Borland C # Builder і Delphi) за своїми функціональними можливостями приблизно аналогічний випуску Crystal Reports 8.5 Standard Edition.


Microsoft Reporting Services


Управління звітами


Не секрет, що основу безлічі програмних систем становить ядро, призначене для зберігання даних. Використання в його якості промислової СУБД забезпечує майбутній системі надійний фундамент, невід’ємну частина успішної розробки. Цей підхід – побудова продукту навколо СУБД – і ліг в основу розробки MSRS *. Прямим наслідком цього став благополучний випуск продукту, а наскільки застосування даного підходу зробить його успішним і затребуваним – покаже найближче майбутнє.

* Огляд MSRS можна також знайти в статті “Засоби створення звітів від Microsoft”, “BYTE / Росія” № 3 “2004.

Будь-який з серверних продуктів, що випускаються самої Microsoft, потребує звітної функціональності, яку раніше було прийнято брати з перших опинилися під рукою засобів. Ми пам’ятаємо звіти у форматі HTML, вивантаження даних в Excel і Word. У подібних умовах не може бути й мови не тільки про єдину службу – постачальника будь-яких типів звітів, а й про консолідацію містяться в них даних.

Усвідомлення цієї проблеми привело до того, що в січні 2004 р. відбувся випуск платформи для управління звітами MSRS. В середині 2004 р. платформа отримала перший пакет оновлень. На даний момент MSRS інтегрується з такими продуктами, як Microsoft CRM 1.2, Exchange Server 2003 і Operations Manager 2005.

Головне завдання MSRS – забезпечити комплексний підхід до управління звітами та підтримку всього життєвого циклу звітів (рис. 4), що включає створення звітів, управління ними та доставку звітів.







Fig.4 
Рис. 4. Архітектура платформи Microsoft Reporting Services.


Як видно з рис. 4, в ядрі MSRS знаходяться наступні служби:


Створення звіту, як і у випадку CRVS, починається з підготовки шаблону розміщення даних на сторінці звіту. Для підготовки шаблону використовується “Дизайнер звітів” (Report Designer). Даний інструмент тісно інтегрований з VS.NET і інсталюється при установці компонентів MSRS. Результатом його роботи стає файл шаблона звіту з розширенням. Rdl, що містить опис структури майбутнього звіту на XML-орієнтованому мовою Report Definition Language (докладний його опис можна знайти за адресою).

Крім розміщення даних, в шаблоні звіту описується зв’язок з джерелами даних, такими, як SQL Server 7.0 і 2000, SQL Server 2000 Analysis Services, Oracle, а також будь-якими джерелами OLE DB і ODBC.

“Дизайнер звітів” дозволяє створити майбутній шаблон за три кроки:


Особливо зручна функція попереднього перегляду, що дозволяє бачити майбутній звіт і виправляти допущені в процесі створення недоліки. Слід також зазначити, що шаблон звіту може приймати інформацію, на підставі якої формується вміст звіту. Ця властивість дозволяє реалізувати параметризрвані звіти.

Після створення шаблону для формування підсумкового звіту слід використовувати “Менеджер звітів” (Report Manager). Згідно представленої раніше схемою служби MSRS, даний компонент взаємодіє з сервером звітів, що виконує всю роботу з вилучення даних і формування результатів. “Менеджер звітів” має Web-орієнтований інтерфейс, що дозволяє виконувати наступні операції:


“Менеджер звітів” вміє представляти дані свого інтерфейсу в HTML-форматі, а також конвертувати у файли PDF, XLS, XML, CSV і популярні графічні формати.

Як же бути з традиційними Windows-додатками? На даний момент Microsoft пропонує рішення, засноване на впровадженні в Windows-програми керуючого елемента ActiveX для перегляду Web; доступ до даними організований за допомогою одержання HTML від того ж “Менеджера звітів”. Приклад реалізації такого додатка включений в постачання MSRS.

З переваг MSRS відзначимо, що продукт підтримує процес отримання звітів користувачами системи. MSRS успішно використовується як в спеціалізованих проектах, націлених на надання звітної функціональності, так і там, де користувач, що володіє VS.NET, хоче мати можливість самостійно конструювати звіти.

У продукту, зрозуміло, є і недоліки. Наприклад, тісна інтеграція з SQL Server, що виступає як сховища звітів, не дозволяє застосовувати MSRS там, де дана СУБД відсутня або її використання не планується. Інший істотний мінус – недоступність редактора шаблонів звітів за відсутності VS.NET. Це не дає можливості користувачам майбутньої системи створювати і редагувати шаблони звітів. Для вирішення цієї проблеми можна розробити свій редактор, що формує XML-опис шаблону звіту. Деякі з виробників, наприклад, Cizer Software, вже скористалися цим.

Безумовний недолік MSRS – Web-орієнтованість “Менеджера звітів”, а також відсутність повноцінного керуючого елемента для відображення звітів в Windows-додатках. Вирішення цієї проблеми закладено в архітектуру MSRS у вигляді доступу до сервера звітів за допомогою технології Web-сервісів. Як обіцяє Microsoft, такий засіб має з’явитися в що виходить в цьому році Microsoft SQL Server 2005.

Серед невеликих проблем слід також відзначити відсутність експорту звіту у формат RTF і DOC, відсутність можливості друку HTML-подання звіту, а також неможливість локалізації інтерфейсу “Менеджера звітів “. Хочеться сподіватися, що дані проблеми будуть вирішені в майбутніх версіях і пакетах оновлення.

Тим не менш MSRS має гарну розширюваністю, що, поряд з тим фактом, що продукт повністю розроблений з використанням. NET Framework, робить його вельми універсальним і зручним у використанні.

Приклад використання


Для ілюстрації використання MSRS скористаємося тим же прикладом, на якому демонстрували можливості CRVS.

Насамперед створимо шаблон звіту, скориставшись VS.NET і “Дизайнером звітів” (Report Designer). Для цього вкажемо джерело даних для майбутнього звіту (рис. 5). Потім за допомогою вкладки Data “Дизайнера звітів “вкажемо процедуру для отримання інформації, що виконує всю логіку формування готової для відображення структури даних (рис. 6).







Fig.5 
Рис. 5. Вказівка ​​джерела даних для звіту.







Fig.6 
Рис. 6. Вибір процедури вилучення інформації в “Дизайнері звітів”.


На лівій панелі можна побачити поля структури даних, яку повертає процедура EmployeesAnalystQueryProc. Ці поля є основою для зв’язування даних з їх розміщенням на сторінці звіту. Слід зазначити – І це демонструє розкривається список – що джерелом даних може бути не тільки процедура.

Після цього ми отримуємо можливість конструювати структуру звіту на базі інформації, наданої процедурою EmployeesAnalystQueryProc. Для цього служить вкладка Layout “Дизайнера звітів” (рис. 7). При конструюванні шаблону звіту ми користуємося панеллю інструментів, яка містить елементи керування для відображення даних в звіті. Як видно з рис. 7, серед них є такі “кубики”, як Image (Зображення), List (Список) і т. п. У процесі конструювання обов’язково потрібно зв’язати елементи звіту з полями структури даних, яку повертає процедура EmployeesAnalystQueryProc.







Fig.7 
Рис. 7. Розміщення даних на сторінці звіту.


В процесі створення шаблону звіту можна зручно і швидко подивитися на те, що виходить. Для цього існує вкладка Preview (рис. 8). У зв’язку з тим, що даний звіт є параметризованих, в верхній частині видно панель настройки параметрів, переданих звіту. При натисканні на клавішу View Report на цій панелі звіт заповнюється даними, і в нижній частині вікна VS.NET з’являється зовнішній вигляд майбутнього звіту.







Fig.8 
Рис. 8. Попередній перегляд звіту.


В результаті виконаних дії ми отримуємо шаблон звіту для формування підсумкового звіту. Шаблон слід помістити на сервер звітів. Це можна зробити за допомогою команди Upload file, скориставшись “Менеджером звітів”, або, що набагато простіше, за допомогою контекстного меню і команди Deploy VS.NET (рис. 9).







Fig.9 
Рис. 9. Розгортання звіту.


Після цієї операції шаблон звіту міститься на сервер звітів, і тепер можна побачити готовий звіт, що містить дані, вибравши його в “Менеджері звітів” (рис. 10). Зверніть увагу на панель навігації, яка виводиться у верхній частині сторінки звіту. Ця панель дозволяє організувати посторінковий перегляд звіту і (за допомогою команди Select a format в списку) перетворити звіт у будь з представлених форматів даних.







Fig.10 
Рис. 10. Вид готового звіту.


Резюмуючи, слід сказати, що і MSRS, і CRVS не тільки містять засоби для табличного подання даних, але і підтримують реалізацію інтерактивних звітів.

Рекомендації по вибору


Насамперед відзначимо, що пропоновані рекомендації засновані на функціональних особливостях кожного з продуктів, а також на досвіді їх використання.

MSRS підходить для проектів, в яких або вже використовується Microsoft SQL Server, або існує можливість його задіяти. MSRS надає розробнику максимум можливостей для підтримки всього циклу управління звітами. Можна впевнено стверджувати, що MSRS в якості основи таких проектів забезпечить надійну базу для розробки звітної функціональності програми. Крім цього, в майбутньому користувачі зможуть отримати зручну можливість розробки власних звітів, а також підтримку створення на основі MSRS звітів для інших додатків.

Не варто забувати про недоліки MSRS. Якщо вам потрібен “Дизайнер звітів” і ви не можете дозволити собі навчати співробітників роботі з VS.NET, то слід звернути увагу на ринок компонентів інших виробників.

Якщо більша частина обсягу функціональності вашого застосування – це робота з різними за своєю структурою звітами, і при цьому дані для них годяться MSRS в якості джерела, то можна впевнено констатувати, що вам і майбутнім користувачам програми сильно пощастило. Крім повноцінної звітної системи, в якості безкоштовного бонуса вони отримують досить універсальний засіб для конвертування звітів в широкий спектр форматів.

З іншого боку, якщо ви не можете дозволити собі Microsoft SQL Server і, як наслідок, MSRS, слід звернути увагу на можливості CRVS. Бути може, вашому додатком, не надто складного з точки зору управління життєвим циклом звітів, буде достатньо вбудованої підтримки звітної функціональності.

Оглядовий характер статті, на жаль, не передбачає докладного розгляду всіх можливостей компонентів. Наприклад, ми не згадали про те, що Crystal Reports дозволяє організувати взаємодію з допомогою актуальною технології Web-служб, а MSRS має розширювану програмну модель. Проте будемо сподіватися, що представленої інформації цілком достатньо, щоб зробити правильний вибір.

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


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

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

Ваш отзыв

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

*

*