Інтеграція служб Reporting Services в додаток Access 2003

Сьогодні ми займемося інтеграцією служб Reporting Services в додатки, і як приклад давайте, інтегруємо їх в Access 2003 тобто в кінцевому підсумку у нас буде можливість формувати звіти, які розташовуються на сервері звітів SSRS, з Microsoft Access 2003.

Продовжуємо вивчати SQL Server Reporting Services на прикладі версії 2008 R2, і зараз ми дізнаємося, яким чином можна інтегрувати служби Reporting Services в додатки. Раніше ми з Вами вже розглянули установку SSRS, а також навчилися створювати звіти в середовищі BIDS, тому, звичайно ж, мається на увазі, що у Вас вже встановлені і налаштовані служби Reporting Services і є опубліковані звіти.

Для початку ми розглянемо способи інтеграції служб Reporting Services, а потім, використовуючи один з цих способів, інтегруємо SSRS в Microsoft Access 2003.

Способи інтеграції служб Reporting Services

Існує кілька способів інтеграції служб Reporting Services в додатки, якщо бути точніше 3, кожен з яких гарний по-своєму і має свої особливості. Давайте розглянемо ці способи.

Інтеграція з допомогою WEB-служби (API SOAP)

Даний спосіб полягає в надання доступу до web службі по протоколу SOAP, іншими словами, у служб Reporting Services є API-інтерфейс SOAP. За допомогою нього можна отримати доступ до всіх функціональних можливостей сервера звітів, тобто не тільки виконувати звіти, але і повністю керувати ними (доступні всі адміністративні функції диспетчера звітів). Цей спосіб краще використовувати тоді, коли Вам необхідно інтегрувати повної набір функцій управління служб Reporting Services, а не тільки перегляд (виконання) Звітів.

Інтеграція з допомогою елементів управління ReportViewer (Visual Studio)

У середовищі програмування Microsoft Visual Studio (Зараз доступна вже версія Visual Studio 2015) Є спеціальний елемент керування ReportViewer, який забезпечує можливість перегляду звітів, тобто за допомогою нього відбувається інтеграція засобів перегляду звітів в додатки. Він реалізований як для додатків Windows Forms, так і для додатків Web Forms.

Інтеграція з допомогою доступу по URL-адресою

На цьому способі давайте зупинимося більш детальніше, так як саме його ми будемо використовувати для інтеграції служб Reporting Services в додаток, розроблене в Access 2003.

Даний спосіб дозволяє отримувати доступ до звітів за допомогою URL-адреси, тобто ми можемо сформувати URL-адресу звіту і звернутися за цією адресою, тим самим виконати звіт. Його використовувати краще тоді, коли Вам необхідно просто і швидко інтегрувати тільки можливість перегляду звітів, тобто за допомогою нього можна здійснювати управління звітами. На користь цього способу в порівнянні з протоколом SOAP крім простоти виступає ще і продуктивність, тобто він трохи, але швидше, тому що не виконує упаковку і передачу SOAP-запитів, одержуваних і що надійшли сервером.

Інтегрувати засоби перегляду звітів за допомогою доступу по URL-адресою можна як в веб-додатки, так і в додатку Windows.

Для інтеграції засобів перегляду звітів в веб-додаток можна використовувати звичайні прямі посилання, для прикладу припустимо, що на сервері звітів є звіт TestReport, який лежить в папці Test і приймає один параметр @price, і для того щоб його викликати ми робимо посилання наступного виду (замість server підставляєте свою адресу сервера звітів)

<a href = “http: // server / ReportServer? / Test / TestReport&rs: Command = Render&price = 100 ”
target = “_ blank”>Відкрити звіт з ціною >= 100</ a>

В результаті у нас відкриється звіт в новому вікні.

Також можна використовувати форму, для того щоб користувач міг сам вводити значення параметрів, наприклад:

<FORM action = “http: // server / ReportServer? / Test / TestReport” method = “post” target = “_ blank”>
<INPUT type = “hidden” name = “rs: Command” value = “Render”>
<INPUT type = “text” name = “price”></ br>
<INPUT type = “submit” value = “Відкрити повідомлення”>
</ FORM>

Інтеграція служб Reporting Services в додатку Windows за допомогою доступу по URL-адресою відбувається з використанням засобів веб-браузера. Можливо два варіанти, перший – це використовувати запуск Internet Explorer для перегляду звітів, і другий – це використання об’єкта WebBrowser.

При використанні Internet Explorer можливостей буде більше, але якщо Ви хочете впровадити звіт в форму, то необхідно використовувати елемент WebBrowser. Ми для інтеграції звітів SSRS в Access 2003 використовуватимемо Internet Explorer, але це ми розглянемо трохи нижче.

У прикладах вище ми використовували всього один параметр сервера звітів rs: Command зі значенням Render і один призначений для користувача параметр price, але насправді параметрів сервера звітів набагато більше. Давайте перерахуємо кілька корисних параметрів, які можуть Вам знадобитися (більш детально можете подивитися в електронній документації по SQL Server).

Параметри з префіксом rc

З даними префіксом йдуть команди для управління засобом перегляду HTML-сторінки.

Назва параметра опис Можливі значення приклад
Toolbar Показує або приховує панель інструментів. За замовчуванням має значення true, тобто показувати. True / False rc: Toolbar = False
Parameters Показує або приховує область параметрів. За замовчуванням має значення true, тобто показувати. Значення Collapsed, означає, що область параметрів не відображається, але може бути зроблена видимої самим користувачем. True, False, Collapsed rc: Parameters = False
Zoom Масштаб відображення звіту у вигляді цілого числа відсотків або строкової константи. За замовчуванням має значення 100. Whole Page – Вся сторінка; Page Width – По ширині; Ціле число. rc: Zoom = 70
Section Вказує, яку сторінку звіту необхідно відобразити. За замовчуванням має значення 1. Ціле число. Номер сторінки. rc: Section = 5

Параметри з префіксом rs

З префікс rs надсилаються команди сервера звітів.

Назва параметра опис Можливі значення приклад
Format Формат даних, в якому необхідно підготувати звіт. За замовчуванням HTML. HTML3.2, HTML4.0, MHTML, IMAGE, EXCEL, WORD, CSV, PDF, XML і NULL. rs: Format = EXCEL
ParameterLanguage Вказує мову переданих в URL-адресу параметрів. Значення за замовчуванням – мова браузера. Мова параметрів rs: ParameterLanguage = en-us

Також є команди з префіксом rv, вони використовуються для настройки веб-частини засобу перегляду звітів в разі, якщо SSRS інтегрований з SharePoint.

Інтеграція SSRS в додаток Access 2003

З теорією трохи познайомилися, тепер переходимо до практики. Припустимо, у Вас є додаток, реалізоване в Access 2003 скажімо у вигляді adp або ade проекту в зв’язці з MS SQL сервером. І стандартного функціоналу Access для створення звітів Вам не вистачає або просто Ви захотіли розгорнути систему, за допомогою якої можна формувати звіти і коректно вивантажувати їх в різні формати (як Ви знаєте складні звіти в Access 2003 навіть в Excel і в Word вивантажуються не зовсім коректно) Або постало завдання створити систему звітності, яка могла б бути доступна з програми, і в той же час функціонувати без нього.

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

Для прикладу давайте використовувати все той же звіт TestReport, який лежить в папці Test і приймає один параметр @price, природно я зараз говорю про сервер звітів.

У моєму випадку я на форму додаю поле price для вказівки для користувача параметра і кнопку OpenReport для виклику звіту, а також додам ще 5 полів зі списком для параметрів, які можна буде використовувати для налаштування відображення звіту. Припустимо report_format, report_section, report_zoom, report_toolbar і report_parameters.

Всі списки, що випадають в даному випадку я реалізую просто через вказівки списку значень, наприклад, для report_parameters ось так:

Більш докладно про випадних списках в Access 2003 ми з Вами говорили ось тут.

В результаті у мене макет форми вийшов наступний:

Тепер залишилося написати код виклику звіту.

У код форми вставляємо наступний код, я його, звичайно ж, прокоментував:

‘Процедура формування звіту.

Ссылка на основную публикацию