BI

Interaktywne raportowanie przy użyciu MS Reporting Services, Sharepoint i MS Excel Services

Styczeń 5, 2017 0
Podziel się:

Narzędzie do raportowania danych Reporting Services stanowi część pakietu MS SQL Server i od wielu lat jest wykorzystywane w organizacjach do prezentacji danych w postaci raportów. Narzędzie to posiada bardzo dużo możliwości przy tworzeniu zestawień, wykresów czy tabel, ale ma jednak też trochę niedoskonałości.

Jedna z uwag pod adresem Reporting Services zgłaszanych przez użytkowników jest fakt, że raporty są bardzo statyczne i nie pozwalają na dużo interakcji podczas wyświetlania raportu. Obecnie Microsoft oferuje już aplikacje, które w pewien sposób odpowiadają na te problemy (Power View, Power BI). Jednak istotne zmiany w Reporting Services nie zostały do tej pory zaprezentowane.

Jednym ze sposobów na „ożywienie” naszych raportów jest wykorzystanie opcji Action. Dzięki niej możemy przekierować użytkownika do innego podraportu lub nawet zewnętrznej strony co może zwiększyć funkcjonalność raportu. W tym artykule wykorzystamy możliwości skoroszytu Excela osadzonego na stronie Sharepoint. Za pomocą linku URL można z poziomu raportu RS przekazać informacje do filtrów w Excelu i zawęzić zakres danych wyświetlonych w raporcie Excel.

Pierwszą czynnością powinno być przygotowanie raportu w Excelu do którego chcemy się odwołać z poziomu raportu Reporting Services. W naszym przypadku źródłem danych jest wielowymiarowa kostka danych stworzona w usłudze SSAS. W Excelu który korzysta z kostki OLAP musimy utworzyć Slicery (Fragmentatory) – będą one filtrować nasze dane.

Aby te fragmentatory były widoczne po osadzeniu skoroszytu na stronie Sharepointa musimy przejść do zakładki File -> Info -> Browser View Options, a następnie w zakładce „Parameters” dodać interesujące nas fragmentatory do listy.
browser-view-optionsparametry-excel

Tak przygotowany skoroszyt możemy osadzić na Sharepoint. Po dodaniu pliku do dokumentów w Sharepoint tworzymy pustą stronę i klikamy w link „Add a Web Part” na dowolnej strefie, który pokaże dostępne rodzaje web part’ów u góry strony. W Kategoriach wybieramy kolejno „Business Data” -> Parts -> Excel Web Access. Następnie w oknie edycji Web Part’u wskazujemy na lokalizację naszego arkusza Excel.
Kolejnym krokiem jest skonfigurowanie Web partów, które odpowiadają za filtrowanie danych. W tym celu użyjemy Web part’u Query String (URL) Filter w kategorii Filters.

sharepoint-filter
Po dodaniu web partów do naszej strony należy skonfigurować połączenia do fragmentatorów z pliku Excel. Przy konfigurowaniu połączenia (“Connections”) wybieramy opcje “Sending values to”, a następnie wybieramy kolejno nasze fragmentatory, które pojawią się na liście wyboru.

sharepoint-slicer
Tak skonfigurowaną stronę publikujemy na Sharepoint.

Następnym i ostatnim krokiem jest odpowiednie skonfigurowanie naszego raportu w usłudze Reporting Services. W naszym zapytaniu MDX musimy dodać informację o unikalnych nazwach członków atrybutów. Wtedy na poziomie kolumn i wierszy zapytania dostaniemy dokładną informację o elementach wymiarów, które przekażemy poprzez link URL do fragmentatorów na stronie Sharepoint. Aby to uczynić przed klauzulą SELECT w MDX mamy możliwość dodania kalkulowanych członków (Calculated Members) za pomocą słowa kluczowego WITH. Aby wydobyć informacje o nazwach członków atrybutów danego wymiaru, skorzystamy z funkcji CURRENTMEMBER i właściwości UNIQUENAME. Przykład składni takiego zapytania MDX może wyglądać następująco:

WITH
MEMBER [Measures].[Customer_Key] AS [Customer].[Customer ID].CURRENTMEMBER.UNIQUENAME
MEMBER [Measures].[Brand_Key] AS [Brand].[Brand ID].CURRENTMEMBER.UNIQUENAME

SELECT
{
[Measures].[Customer_Key]
[Measures].[Brand_Key]
} ON COLUMNS,
{ [Customer].[Customer ID].MEMBERS
* [Brand].[Brand ID].MEMBERS
} ON ROWS
FROM
[MyOLAPCUBE]

Do zapytania MDX dodajemy pozostałe interesujące nas dane i miary. Po dodaniu kodu MDX do projektu raportu i odświeżeniu pól w DataSet możemy przejść do odpowiedniego pola w naszym raporcie, które będzie interaktywne i przeniesie nas do raportu osadzonego na Sharepoint. W danym polu klikamy prawym klawiszem myszy i wybieramy właściwości (Text box properties).

ssrs-cell

Następnie przechodzimy do zakładki “Action” i wybieramy opcję “Go to URL”. W oknie “Select URL:” wybieramy opcję fx po prawej stronie, która pozwoli wprowadzić własne wyrażenie.

ssrs-action

W wyrażeniu musimy zawrzeć informacje o adresie naszej strony oraz o parametrach jakie chcemy przekazać do fragmentatorów. Aby odwołać się do poszczególnych fragmentatorów, należy w linku podać nazwę jaką nadaliśmy poszczególnym Webpart’om. Musimy uważać również na symbole specjalne takie jak “&”. Przykład wyrażenia, które przekazuje informacje o dwóch parametrach Brand i Customer znajdziemy poniżej:

="http://bi-portal.company.net/sites/Reports/Customer.aspx?"
+ "Customer="+ Replace(Fields!Customer_Key.Value,"&","%26")
+ "&Brand=" + Replace(Fields!Brand_Key.Value,"&","%26")

Dzięki takim zabiegom możemy znacznie “ożywić” nasze raporty stworzone w Reporting Services i sprawić, że będą one bardziej funkcjonalne a jednocześnie ciekawsze wizualnie.

Oceń ten post
Kategorie: BI
Filip Sykut
Autor: Filip Sykut
Business Intelligence developer. Od kilku lat pracuje z rozwiązaniami firmy Microsoft takimi jak: Reporting Services, SSAS, SSIS, Power View. W firmie Sii pracuje nad wprowadzaniem nowych rozwiązań dla platformy BI oraz wspiera klientów zewnętrznych w realizacji ich wizji rozwoju systemów raportujących.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz