Wstęp
Raporty wszelkich typów występują w każdej firmie oraz są sprawdzonym i skutecznym sposobem prezentowania danych statystycznych (i nie tylko). WEBCON BPS dysponuje narzędziem generowania raportów w oparciu o wcześniej przygotowaną strukturę. W połączeniu z narzędziem do tworzenia raportów jakim jest SQL Report Builder pozwala na dynamiczne generowanie raportów bazując na danych wprowadzanych na obiegach dokumentów.
Połączenie tych narzędzi umożliwia zredukowanie czasu poświęconego w innym wypadku na tworzenie i rozpowszechnianie raportów. Poniżej przykład zastosowania oraz konfiguracja krok po kroku.
Przed przystąpieniem do realizacji poniższego przykładu należy skonfigurować zgodnie z zaleceniami producenta SSRS (SQL Server Reporting Services).
Przykład użycia
Zostanie utworzony przykładowy raport zapotrzebowania na produkty (software, hardware) oraz usługi. Do przedstawienia danych zostanie użyta przygotowana tabela oraz wybrane typy wykresów. Dane będą pobierane z pól formularza na dokumentach startowanych w ramach ustalonego obiegu.
Poniżej widoczny efekt końcowy.
Następnie przejdziemy do stworzenia odpowiedniego raportu w SQL Report Builder.
Przykładowy proces dla tworzonego raportu powinien mieć następujące atrybuty:
- Pojedynczy wiersz tekstu
- Wiele wierszy tekstu 2x
- Pole wyboru
- Liczba zmienno-przecinkowa
- Liczba całkowita
- Data i godzina
- Osoba lub grupa
Wartości tych atrybutów będą używane przez tabelę oraz wykresy (+ miernik).
Tworzenie struktury raportu
Na witrynie z raportami (domyślnie http://adresSerwera:80/ReportServer) włączamy Report Builder.
Wita nas ekran kreatora raportów lub zestawów danych. Wybieramy opcję tworzenie tabeli z kreatora i klikamy dalej.
Po wybraniu kreatora tabeli lub macierzy przechodzimy do ekranu wyboru/tworzenia zestawu danych. Wybieramy „Utwórz zestaw danych” i przechodzimy dalej. W kolejnym oknie tj. wyboru połączenia ze źródłem danych tworzymy nowe źródło danych.
Jako typ połączenia wybieramy Microsoft SQL Server, a parametry połączenia wprowadzamy ręcznie (zgodnie ze specyfikacją: http://msdn.microsoft.com/en-us/library/ms156450.aspx#bkmk_connection_examples) lub klikamy „Kompiluj…”. W nowo otwartym oknie mamy możliwość ustawienia parametrów połączenia bez znajomości poprawnej formy connection string`a (http://en.wikipedia.org/wiki/Connection_string).
Należy wprowadzić pełną nazwę serwera tj. host + domena (http://en.wikipedia.org/wiki/Fully_qualified_domain_name).
Poniżej poprawne parametry połączenia (connection string) dla serwera Microsoft SQL. Również na tym ekranie mamy możliwość przetestowania połączenia – jest to ważny krok i na każdym etapie powinien być sprawdzany. Zatwierdzamy konfigurację połączenia do bazy przyciskiem „OK” i przechodzimy dalej.
Widok na utworzone źródło danych. Przechodzimy dalej.
Projektowanie zapytania to kluczowy krok w całym procesie tworzenia szkieletu raportu. W tym oknie musimy wskazać kolumny wybranej bazy danych, które będą uwzględniane w naszym raporcie.
Kluczowe dla nas informację dotyczące obiegu dokumentów (a więc również informacji wprowadzanych i/lub generowanych na dokumentach) znajdują się w tabeli WFElements wybranej bazy. Wszystkie wartości wprowadzanych atrybutów przechowywane są w kolumnach, których nazwy zaczynają się od WFD_Att… np. WFD_AttPeople1 = pierwszy atrybut typu „Osoba lub grupa” na danym procesie. Dla naszego przykładu zaznaczymy następujące kolumny bazy:
- WFD_ID – unikatowy identyfikator każdego elementu
- WFD_Signature – sygnatura dokumentu, posłuży nam do filtrowania wyników tylko wybranych sygnatur (czyli np. dokumentów dotyczących naszych zamówień)
- WFD_TSUpdate – podaje czas ostatniej aktualizacji dokumentu
- WFD_isFinished – zwraca true jeżeli dokument doszedł do ostatniego kroku na ścieżce
- WFD_AttText1, WFD_AttLong1, WFD_AttLong2, WFD_AttChoose1, WFD_AttInt1, WFD_AttDecimal1, WFD_AttDateTime1, WFD_AttPeople1 – pola przechowujące wartości atrybutów na dokumencie
Kolejnym krokiem jest zastosowanie odpowiednich filtrów. W przykładzie wystarczy nam pobranie wartości wybranych pól z dokumentów o sygnaturze rozpoczynającej się od „BPM…”.
Zarówno kreowanie zapytania jak i dodawania filtrów nie wymaga wiedzy z zakresu SQL.
Po wprowadzeniu odpowiedniej konfiguracji klikamy „Dalej”.
Porządkowanie pól umożliwia tworzenie skomplikowanych tabel z wieloma wewnętrznymi strukturami oraz grupowanie ich w celu odpowiedniego przedstawienia danych. W naszym przykładzie tworzymy prostą tabelę, więc przeciągamy widoczne na poniższym screenie kolumny do pola „Wartości”.
Następnie należy określić czy chcemy użyć wobec wybranych pól jednej z wbudowanych funkcji agregacyjnych m.in.: Sum(), Count(), First() etc. Wybór funkcji agregujących dostępny jest po kliknięciu prawym przyciskiem na wybraną wartość.
Niektóre typy pól np. Integer lub Decimal (całkowite lub zmienno-przecinkowe) automatycznie są agregowane przez funkcję Sum(). W naszym przypadku odznaczamy wszelkie dodatkowe funkcje i przechodzimy dalej do wyboru układu i stylu wyświetlania tabeli. Wprowadzamy tam preferowane ustawienia i klikamy „Zakończ” (w tworzonym przykładzie zostawiono domyślne ustawienia dla układu i stylu wyświetlania).
Po skończeniu pracy kreatora widoczny jest szkielet tabeli oraz nagłówek raportu. Nagłówkami kolumn są wybrane pola, natomiast w wierszu wartości tych pól.
Docelowo struktura tabeli ma się prezentować następująco:
Ustawienia formatowania i właściwości
Należy pamiętać o zachowaniu odpowiednich rozmiarów raportu jeżeli ma być on generowany do pliku PDF. Zaprezentowany na początku raport mieści się na 1 stronie A4. Generując taki raport warto w zakładce „Widok” zaznaczyć checkbox „linijka”. W każdym momencie możliwe jest uruchomienie raportu a więc włączenie podglądu, w celu sprawdzenia jak wygląda aktualnie (również w podglądzie wydruku).
Zmian nazw nagłówków dokonujemy jak w zwykłym edytorze tekstowym. Dodanie wiersza tabeli również następuje poprzez menu kontekstowe tabeli dostępne po kliknięciu prawym przyciskiem myszy w jej obrębie.
Kwestie wyglądu i formatowania mogą być zmieniane poprzez okno „Właściwości”. Można je włączyć w zakładce „Widok” głównego paska narzędzie programu SQL Report Builder zaznaczając odpowiedni checkbox.
Drugim sposobem zmiany wyglądu tekstu jest okno „Właściwości pola tekstowego” dostępne z poziomu menu kontekstowego.
Dokładne ustawienia formatowania i wyglądu tabeli nie będzie tutaj omawiane.
Konfiguracja wartości wyrażeń
Ostatnim krokiem jest odpowiednie ustawienie wyświetlanych wartości przez pola: Kategoria, Koszt całkowity, Osoba wnioskująca oraz Razem.
W tym celu przechodzimy do edycji wartości wyrażenia:
SQL Report Builder udostępnia wiele wbudowanych funkcji pozwalających na tworzenie zaawansowanych wyrażeń oraz szybki dostęp do prostszych i najczęściej używanych wartości.
Poniżej screeny z konfiguracji wymienionych powyżej pól:
Pole „Kategoria”. Domyślnie jest wyświetlane w postaci NazwaKategorii#NazwaKategorii. Należy wyświetlić tylko część po wystąpieniu znaku „#”.
Pole „Koszt”. Mnożymy cenę jednostkową produktu/usługi razy ilość.
Pole „Os. wnioskująca”. Analogicznie jak pole „Kategoria”.
Pole „Razem”. Sumuje wartość kolumny „Koszt całkowity” (kolumna WFD_AttDecimal1).
Po wykonaniu powyższych kroków przechodzimy do WEBCON BPS Designer Studio i konfigurujemy akcję generowania raportów.
Konfiguracja ustawień akcji oraz generowanie raportu z WEBCON BPS
Przechodzimy do dowolnego kroku ( tu krok 2) naszego procesu i wybieramy edytuj. Następnie na zakładce „Akcje” dla typu „Przycisk w menu” dodajemy akcję „Generuj Raport RS”. Przechodzimy do jej konfiguracji.
Konfigurujemy akcję zgodnie ze schematem na poniższym screenie.
Adres serwera domyślnie ma postać http://serwer:80/ReportServer.
Adres raportu odnosi się do lokalizacji raportów na serwerze. „/” to katalog główny raportów.
Należy wybrać odpowiedni sposób logowania oraz wprowadzić poprawny adres serwera i adres raportu wraz z jego poprawną nazwą.
Pola „Nazwa załącznika” oraz „Grupa” są wymagane. Wybierając typ pliku wyjściowego należy mieć świadomość w jakim rozmiarze powstawał raport (A4,A3, niestandardowy etc.). Jest to szczególnie istotne generując raporty w postaci pliku PDF, DOC gdzie domyślnie muszą się zmieścić na pionowej stronie A4.
Podsumowanie
Po dodaniu akcji generowania raportów przechodzimy na witrynę i startujemy kilka przykładowych dokumentów wprowadzając odpowiednie dane do atrybutów.
Podczas wprowadzania danych na dokumencie do tabeli będą pobierane wartości ze skorelowanych pól formularza np. wypełniając na dokumencie pole „Koszt” wartość zostanie przekazana do pola „Cena jednostkowa” w tabeli.
Po wprowadzeniu danych do kilku dokumentów i wykonaniu akcji na ostatnio wprowadzonym dokumencie wygenerowany zostanie raport w oparciu wprowadzone dane. W przykładzie wykonanie akcji zostało ustawione na przycisk w menu w drugim kroku ścieżki.
Tworzenie wykresów w SQL Report Builder w drugiej części artykułu.