Co nowego w SQL Server 2008 R2: Reporting Services Autor: Bartłomiej Graczyk Celem całego cyklu artykułów z serii Co nowego w SQL Server 2008 R2 jest pokazanie i omówienie najnowszych funkcji powstającego właśnie produktu, jakim jest Microsoft SQL Server 2008 R2. Tym razem zaprezentowane zostaną usprawnienia w obszarze raportowania z wykorzystaniem Microsoft SQL Server Reporting Services oraz Report Builder (v 3.0). Reporting Services odświeżone i usprawnione Praca z danymi geograficznymi i mapami Pierwszym z kluczowych elementów nowej wersji SQL Server Reporting Services jest możliwośd sadzania danych geograficznych w raportach i posługiwania się nimi, w tym wizualizacja z wykorzystaniem map. Warto również wspomnied w tym miejscu o możliwości integracji z Bing Maps. Możliwości SSRS i wizualizacji danych pokazane zostały w sekcji Demo 1. tego artykułu. Zgodność z ATOM data feeds Raporty mogą byd teraz dostarczane również w formacie zgodnym ze standardem ATOM rozpoznawanym przez Gemini i inne narzędzia. Report Manager Obszar zarządzania raportami zyskał nową wizualizację (SharePoint-like UI), co dla wielu użytkowników koocowych nie jest bez znaczenia. Współużytkowane data sets (Shared Data Sets). Developerzy rozwiązao raportowych z wykorzystaniem SSRS zapewne wiedzą doskonale o zaletach współużytkowanych źródeł danych (SharedData source). Microsoft SQL Server Reporting Services 2008 R2 to krok jeszcze dalej data sets, dotąd wykorzystywane w obszarze jednego raportu, podobnie jak Date Sources mogą byd już tworzone jako współużytkowane data set (Shared Data Set). Obecnie raz przygotowany data set może zostad wykorzystany wielokrotnie w wielu raportach, a dane pobrane za jego 1
pomocą przechowywane są w cache u, co znaczenie przyspiesza generowanie raportów, zwłaszcza przy bardzo złożonych zapytaniach. Wygodną funkcją jest również przekształcanie w dowolnym momencie już istniejącego data set, osadzonego w danym raporcie, w obiekt typu współużytkowanego (ang. Shared Data Set). Rozszerzona integracja z SharePoint (zarówno dla SharePoint 2007, jak i SharePoint 2010). Dużym usprawnieniem dla osób wykorzystujących na co dzieo SSRS jest możliwośd stworzenia źródła danych opartego na Microsoft SharePoint List, co znacząco ułatwia raportowanie, gdy źródłem danych jest wspomniany SharePoint. 2
Warto również wspomnied o zaimplementowaniu Query Buildera właśnie w obszarze pobierania danych ze źródeł typu SharePoint List. Agregacje agregatów Wraz z obecnie dostępną wersją SSRS twórcy raportów uzyskują możliwośd stosowania zagnieżdżonych funkcji/wyrażeo wewnątrz innych wyrażeo agregujących. Przykładem może byd wyliczanie średniej z sumy sprzedaży miesięcznej w danym roku Avg(Sum(Sales, "Month"), "Year"). Nowe element wizualizacji danych, np. Data Bars (paski danych) Data Bars są ciekawą formą prezentacji danych, zwłaszcza gdy w określonym zbiorze należy pokazad skalę różnicy między poszczególnymi elementami zbioru (np. skala sprzedaży danego produktu w różnych regionach czy przez różne osoby). Przykład wykorzystania pasków danych w Demo 2. Rozszerzenia Business Intelligence Development Studio Wsparcie dla wersji 2008 i 2008 R2 raportów i projektów raportowych Rozszerzenia wyrażeń RDL Wyrażenia pozwalające odwoład się do obecnie stosowanego formatu renderowania lub globalnego elementu RenderFormat (=Globals!RenderFormat.Name). Możliwośd określania nazw, m.in. dla arkuszy excelowych przy ich renderowaniu. Dynamiczny podział stron oraz możliwośd resetowania numeracji stron po podziale (org. After page break). 3
Galeria elementów raportowych (Report Parts) SQL Server 2008 R2 Reporting services to wprowadzenie obiektów raportowych, które mogą byd wykorzystywane wielokrotnie, w różnych raportach. Publikując element raportowy na serwerze, udostępnia się go innym autorom/developerom raportów. Elementy raportowe mogą byd publikowane zarówno przez Business Intelligence Developer Studio, jak również przez Report Builder 3.0. Tworzący raporty mogą w dowolnym momencie wykorzystad opublikowane elementy, przeciągając je do swojego raportu. Elementami raportów podlegającymi publikacji są: Charts Gauges Images Maps Parameters Rectangles Tables Matrices Lists Schemat przykładowego cyklu życia elementu raportu 1. Osoba A tworzy raport, który zawiera wykres wykorzystujący jako dane, osadzony w ramach raportu data set 2. Osoba A publikuje na serwerze raportowym wykres jako element raportu. Automatycznie Report Builder nadaje wykresowi unikalny ID. Wykres jest publikowany wraz z obiektem data set, który stanowi jego integralną częśd i zostaje osadzony w wykresie. 3. Osoba B tworzy pusty raport, przeszukuje galerie elementów raportowych, znajduje opublikowany wykres i dodaje go do własnego raportu. Wykres jest od tego momentu częścią raportu osoby B. 4
4. Osoba C osadza wykres z galerii w swoim raporcie, ale zmienia również jego typ (np. z kolumnowego na okrągły). 5. Osoba C, jeśli posiada odpowiednie uprawnienia, publikuje nowy wykres, nadpisując stary na serwerze. 6. Kiedy osoba B otwiera swój raport, element raportu pobrany z galerii elementów jest sprawdzony pod kątem aktualności. Jeśli od ostatniego otwarcia raportu na serwerze dokonano zmiany elementu raportu (wykresu), użytkownik B otrzymuje informacje o zmianie i może zaakceptowad te zmiany, co spowoduje aktualizację komponentu w jego raporcie. Report Builder 3.0 Kolejna odsłona narzędzia klienckiego czyli Report Builder 3.0. Wersja SSRS 2008 R2 to krok w kierunku użytkowników koocowych, dostarczenie narzędzia, dzięki któremu osoba nietechniczna w prosty sposób wykorzysta środowisko SSRS do zbudowania i opublikowania własnego raportu. Narzędzie Report Builder 3.0 zapewnia jeszcze więcej możliwości, a jednocześnie korzystanie z niego jest proste. SQL Server 2008 Report Builder v3 to dopracowanie możliwości aplikacji m.in. przez: implementację nowych funkcji wykorzystywanych do tworzenia raportów, jak chociażby wspomniane w tym artykule Data Bars (paski danych) czy mapy, możliwośd zdefiniowania własnego źródła danych dla tworzonego raportu (nie trzeba korzystad z definiowanego modelu raportowego), możliwośd pracy w trybie server mode zapewniającą zwiększenie wydajności pracy użytkownika koocowego z aplikacją przez wprowadzenie wykorzystania cache u serwera do przechowywania danych wykorzystywanych przez użytkowników aplikacji Report Builder. 5
Demo 1. Wizualizacja informacji o sprzedaży zrealizowanej na obszarze USA Krok 1. Zapytanie pobierające dane. Rysunek 1. Do pobrania danych wykorzystany zostanie widok vsalesperson zwracający informacje o obszarze (StateProvinceName) oraz wartości sprzedaży (SalesYTD), zrealizowane na terenie USA (CountryRegionName= United States ). 6
Rysunek 2. Data Set gotowy do użycia w raporcie. 7
Krok 2. Prezentacja tabelaryczna wyników. Rysunek 3. Tabelaryczna prezentacja wyników przez osadzenie w raporcie tabeli. Krok 3. Osadzanie nowego obiektu w raporcie mapa. 8
Rysunek 4. Wybór wizualizacji danych komponent.net Map. Nowy komponent umożliwia osadzenie w raporcie: map pochodzących z galerii (preinstalowane mapy, w tym momencie dostępne mapy poszczególnych stanów USA oraz mapa całego kraju), kształtów map pochodzących z popularnych formatów plików grafiki wektorowej ESRI (.shp), obszarów uzyskanych przez wykonanie zapytania SQL (org. SQL Spatial Data Query). Krok 4. Wskazanie źródła pochodzenia kształtu mapy. Rysunek 5. Wybór sposobu prezentacji danych obszaru/mapy. 9
Rysunek 6. Do prezentacji danych sprzedaży wykorzystana zostanie mapa USA z podziałem na stany. Ważnym elementem raportu zawierającego mapę może byd jego integracja z Bing Maps. Efekt integracji można uzyskad, zaznaczając opcję Add a Bing Maps layer. Rysunek 7. Możliwośd integracji z Bing Maps. 10
Krok 5. Określenie sposobu prezentacji analizowanego atrybutu na mapie. Kolejny krok przy osadzaniu mapy to wybór sposobu wizualizacji danych na obszarze mapy. Dośd interesujący jest w tym miejscu wybór mapy typu Bubble Map, na której wizualizacja odbywa się przez umieszczenie centrum chmurki (ang. Bubble) w odpowiednim miejscu danych, a rozmiar chmurki zależy od aktualnej wartości analizowanego atrybutu (np. wielkości sprzedaży). Można również skorzystad z opcji kolorowej mapy analitycznej (ang. Color Analytical Map), na której wartości analizowanego atrybutu zaznaczane są odpowiednimi kolorami. Rysunek 8. Wybór typu wizualizacji. Krok 6. Korelacja analizowanych danych (dane pochodzące ze stworzonego Data Set z osadzaną mapą). Poprawna wizualizacja danych wymaga określenia sposobu łączenia analizowanych danych z obszarem, na który mają zostad naniesione. W tym celu należy jawnie zdefiniowad połączenie między wspomnianym obszarem (mapą) a zapytaniem(wizualizowanymi danymi). 11
Rysunek 9. Korelacja danych podlegających analizie z obszarem ich wizualizacji (mapą). W prezentowanym przypadku połączenie między mapą a analizowanymi danymi odbywa się przez atrybut STATENAME (dla Spatial data) oraz StateProvinceName (dla analizowanych danych). 12
Krok 7. Wskazanie atrybutu podlegającego analizie oraz sposobu jego prezentacji. Rysunek 10. Wybór wzoru mapy, analizowanego atrybutu oraz reguły kolorowania wyników. Krok 8. Raport końcowy: podgląd. Rysunek 11. Podgląd finalnego raportu wartości sprzedaży naniesionych na mapę sprzedaży. 13
Demo 2. Wizualizacja danych z wykorzystaniem Data Bars (pasków danych) Krok 1. Prezentacja danych, które podlegać będą wizualizacji. Rysunek 1. Tabelaryczna prezentacja analizowanych danych. Krok 2. Osadzenie tabeli z danymi w raporcie. Do tej pory korzystający z technologii SSRS najczęściej prezentowali dane w formie tabelarycznej. Mimo jej prostoty i czytelności czasami dośd trudno w tabeli, w której dane zostały posortowane alfabetycznie według nazwy obszaru, wyłonid obszar o najwyższej sprzedaży, co doskonale widad na zamieszczonym poniżej podglądzie raportu. 14
Rysunek 2. Tabelaryczna prezentacja analizowanych danych z wykorzystaniem SSRS. Dane w raporcie posortowane według nazwy obszaru. Krok 3. Zwiększenie czytelności raportu przez dodanie pasków danych (org. Data Bars). Rysunek 3. Dodanie do raportu pasków danych wymaga wykorzystania komponentu Data Bars dostępnego w SSRS 2008 R2. 15
Krok 4. Ustawienia obiektu Data Bar. Rysunek 4. Określenie rodzaju pasków zastosowanych do wizualizacji danych. Krok 5. Wskazanie elementu danych dla obiektu Data Bar. Rysunek 5. Wskazanie atrybutu stanowiącego dane wejściowe dla obiektu Data Bar. 16
Krok 6. Prezentacja raportu z obiektem Data Bar. Rysunek 6. Wyjściowy raport sprzedaży wraz z obiektem pasków danych (org. Data Bar). Demo 3. Przygotowanie i wykorzystanie Report Parts z zastosowaniem Report Buildera 3.0. Krok 1. Otwarcie Report Builder. Rysunek 1. Uruchomienie aplikacji Report Builder odbywa się przez stronę Report Manager. 17
Rysunek 2. Nowy ekran powitalny aplikacji Report Builder 3.0 umożliwia szybkie utworzenie raportu przez uruchomienie jednego z kreatorów bądź utworzenie pustego raportu. Krok 2. Przygotowanie obiektu do publikacji. W ramach tej demonstracji element raportu przygotowanego w Demo 2. zostanie opublikowany jako Report Part na serwerze raportowym. Rysunek 3. Raport z elementem Matrix, który zostanie opublikowany jako Report Part. 18
Krok 3. Publikacja elementu raportu na serwerze. Rysunek 4. Zatwierdzenie publikacji elementu Tablix1 na serwerze raportowym. Krok 4. Utworzenie nowego raportu wykorzystującego przygotowany wcześniej element. W celu przygotowania nowego raportu, wykorzystującego opublikowany Report Part, należy połączyd się z serwerem raportowym, na którym został on opublikowany. 19
Rysunek 5. Tworzenie nowego raportu z użyciem Report Part Gallery. Po połączeniu z serwerem należy wskazad interesujący Report Part i osadzid go we własnym raporcie. Rysunek 6. Osadzanie Report Part w nowym raporcie. Podsumowanie SQL Server Reporting Services 2008 R2 to platforma raportowa o coraz większych możliwościach. Niewątpliwymi nowościami jej kolejnej wersji są zaawansowane obiekty wizualizacji danych, np. zaprezentowane w tym artykule mapy czy paski danych, które stały się integralnymi elementami raportów. Warto również zwrócid uwagę, że pewne obszary platformy raportowej nieznacznie zmodyfikowano, aby jak 20
najbardziej zbliżyd się do rodziny produktów o interfejsach typu SharePoint like UI oraz możliwościach wykorzystania obiektów SharePoint jako źródeł danych. Wskazuje to jednoznacznie zmierzanie i zachęcanie do integracji SSRS z Microsoft SharePoint Server. Więcej, wprowadzenie do użycia w obszarze raportowym obiektów takich jak Report Part jest niemal tożsame, jeśli chodzi o zastosowanie, z wykorzystywanymi w ramach MicrosftSharePoint Server webpartami. Autor Bartłomiej Graczyk (MCT, MCITP, MCDBA, MCSE, MCSA) W ostatnich latach uczestnik wielu projektów, w których pełnił rolę projektanta, konsultanta technologicznego i analityka biznesowego w zakresie rozwiązao działających na platformie Microsoft SQL Server 2000/2005/2008, Sybase ASA/ASE,Oracle. Twórca autorskich rozwiązao i aplikacji bazodanowych, m.in. dla Mars Polska, Polskapresse, Polskiej Telefonii Cyfrowej (Era), Rohe Polska, AGITO SA, Polbanku, PKP SA. Od 2007 roku Microsoft Certified Trainer, prowadził autoryzowane szkolenia Microsoftu w ramach współpracy z największymi ośrodkami szkoleniowymi w Polsce, m.in. z ABC Data Centrum Edukacyjnym i Combidatą. W ramach działalności trenerskiej brał również udział w projektach szkoleniowych dla sektora publicznego: Kancelarii Prezesa Rady Ministrów, Centralnego Biura Antykorupcyjnego, Agencji Bezpieczeostwa Wewnętrznego, GIODO. Inicjator i jeden z liderów offline owej grupy Microsoftu w Łodzi, autor artykułów na stronach i w czasopismach branżowych. Posiada certyfikaty: MCT, MCITP: Database Administrator, Database Developer, Business Intelligence Developer, MCDBA, MCSE, MCSA, Microsoft Certified Business Management Solutions Specialist & Professional for Microsoft Dynamics CRM 4.0. 21