Raporty jak z rękawa

Co dalej z raportem

Samo zaprojektowanie raportu to nie wszystko - trzeba go jeszcze udostępnić użytkownikowi. Crystal Reports może współpracować z aplikacjami napisanymi chyba w dowolnej technologii. Można stosować przeglądarki raportów dla "bogatego" klienta, publikować raporty na WWW (wtedy jednak musi być zainstalowany Report Application Server).

Gdy raportów jest naprawdę dużo, obejmują różne zakresy danych, przeznaczone są dla innych grup użytkowników, problem jest nawet z zapanowanie nad tym, gdzie dany raport się znajduje i do czego tak naprawdę służy, o opcjach dystrybucji każdego z nich nie wspominając.

Jeszcze przed zakupem przez Seagate Software firma Crystal Decisions oferowała rozwiązanie Crystal Report Server, który był pakietem przeznaczonym do zarządzania dużymi zbiorami raportów. Podobną rolę pełni jeden z modułów BusinessObject Enterprise. Wersja XI tego pakietu wykorzystuje te same mechanizmy raportowania co Crystal Reports - ale dodatkowo zapewnia mechanizmy do monitorowania wydajności, integracji raportów itp.

Pakiet oferuje wiele dodatkowych narzędzi przydatnych przy tworzeniu dużej liczby raportów. BusinessObject Enterprise Repository to miejsce, gdzie przechowywane są wszystkie obiekty raportów - odpowiednio skatalogowane i opisane. Może też służyć do zapisywania kwerend i funkcji, które mogą być współdzielone przez wiele raportów. W ten sposób w repozytorium Crystal Reports XI można zgromadzić komponenty, które potem będą wykorzystywane w różnych raportach. Oprócz metadanych, zapytań, wyrażeń i innych obiektów, w repozytorium mogą być także elementy graficzne i tekstowe. Po umieszczeniu takiego współdzielonego elementu na raporcie tworzona jest jego kopia, tzn. raport staje się "samodzielną" strukturą.

Można też sprawić, aby podczas otwierania raportu współdzielone informacje były sprawdzane pod kątem aktualności lub zgodności z zawartością repozytorium i w razie niezgodności - synchronizowane. W wyniku tego można łatwo sprawić, by raporty przeznaczone dla różnych szczebli zarządzania czy też użytkowników o różnych zakresach obowiązków na tym samym poziomie były spójne.

Na nieszczęście zarządzanie wersjami obiektów w Crystal Reports XI nadal jest kłopotliwe. Brak jest formalnego sposobu na określenie tego, że np. dopiero zmiana podwersji oznacza stan braku zgodności/desynchronizacji.

BusinessObject Enterprise to pakiet serwerowy przeznaczony do wspomagania pracowników zajmujących się analizą danych. Jedną z jego funkcji jest kontrola szczegółowych uprawnień użytkowników - niezależnie od uwierzytelnienia systemowego, sieciowego czy w bazie danych.

Takie rozwiązanie ma sens, ponieważ pozwala tworzyć grupy odbiorców informacji o uprawnieniach i zainteresowaniach niecałkiem pokrywających się z ich uprawnieniami w sieciach czy aplikacjach.

Kontrola uprawnień pozwala także np. elastycznie zarządzać dystrybucją raportów czy tymczasowo blokować dostęp do nich, albo też nadawać priorytety wykonywania ich z uwzględnieniem wydolności w czasie serwera baz danych albo sieci, np. tak, aby raportowanie nie odbywało się kosztem przetwarzania transakcyjnego, co dotyczy zwłaszcza raportów ad hoc.

BusinessObject Enterprise może generować raporty w zadanych godzinach lub z określoną częstotliwością oraz zapisywać wyniki w formie gotowej do dystrybucji zgodnie z jej założeniami. Co więcej - wygenerowane dane historyczne mogą być przechowywane dłużej, np. jako materiał do dalszych analiz. Jak na produkt korporacyjny przystało, BusinessObject Enterprise może pracować w klastrze serwerów równoważących między sobą obciążenie, co nie zmienia faktu, że jest to ten sam generator raportów, który obecny jest w "desktopowej" wersji Crystal Reports.

Nowości w jedenastce

Crystal Reports XI nie wprowadza rewolucyjnych zmian, wiele jest za to zmian drobnych, ukierunkowanych na ułatwienie tworzenia raportów, a także lepszą integrację ze środowiskiem BusinessObject Enterprise. Zmieniła się m.in. zasada "pytania" o wartości potrzebne do filtrowania danych w raporcie. Dotychczas były to po prostu okienka, do których trzeba było wprowadzić odpowiednie wartości. Teraz można pokazać wybrany zestaw elementów z bazy danych i pozwolić "wybrać" określoną liczbę czy łańcuch znaków. Można też określać jak często taka lista będzie uaktualniana (przy każdym otworzeniu raportu, czy też np. raz na tydzień).

W Crystal Reports "od zawsze" każda prezentowana w raporcie wartość mogła być powiązana ze zdarzeniem, np. kliknięcie na wartość w raporcie syntetycznym może wywołać pokazanie się nowego okna z wycinkiem raportu szczegółowego itp. Nie było natomiast możliwości wybrania wartości warunku z np. listy rozwijanej. Teraz już można. Raporty typu "pokaż pierwsze N rekordów" mogą mieć parametryzowane warunki sortowania - można tu użyć dowolnych formuł (i/lub okien dialogowych). Aby to działo, konieczne było rozbudowanie przeglądarek raportów. Dynamiczne odpytywanie współdziała z technologiami ActiveX, .Net WinForm i WebForm oraz DHTML.

Eksport do postaci plików RTF został przeorganizowany. Dotychczas RTF prezentował dokładnie obraz raportu, ale czasami (w zależności od tego, jak raport był zdefiniowany) trudno było np. edytować wynikowy plik RTF jak normalny dokument. Teraz można wybrać, czy bardziej istotna jest dokładność odwzorowania układu raportu, czy możliwość jego edytowania. Ustawienia określające parametry eksportowania można zresztą obecnie zapisać w samym raporcie, dzięki czemu nawet mniej doświadczony użytkownik będzie w stanie zrobić to poprawnie.

Coraz popularniejszym formatem publikacji jest HTML - w CR XI można podejrzeć, jak dany raport będzie wyglądał po opublikowaniu w sieci WWW. Wersja X i wcześniejsze nie potrafiły pokazać obrazów, które były reprezentowane w postaci ścieżki do pliku - konieczne było podczepienie obiektu BLOB. Teraz nie ma już takiego wymagania, a co więcej, nie ma potrzeby stosowania w tym celu skomplikowanych formuł.

Dużo zmian dotyczy osadzania motoru Crystal Reports w innych aplikacjach. W wersji XI wprowadzono możliwość drukowania raportu po stronie serwera. Ponadto obliczenia w raportach mogą wprost wywoływać kod Java. Można też podglądać raporty, wykorzystując Java Server Faces. Crystal Reports ma także specjalny komponent, pozwalający na to, by raporty były generowane nie po stronie klienta, ale na wyspecjalizowanym serwerze.

Z istotnych rozszerzeń w Report Application Server XI warto wymienić wsparcie dla mechanizmu jednorazowego logowania (SSO) oraz fakt, że RAS instaluje się od razu podczas instalacji głównej (poprzez Windows Installer), co upraszcza wdrożenie. Wprowadzono też znacznie lepszą kontrolę programową nad raportami zagnieżdżonymi. Dużym ułatwieniem jest mechanizm sprawdzania wykonalności raportu, a więc czy wszystkie elementy, formuły, źródła danych są dostępne.

Łatwiejsza jest współpraca z repozytoriami obiektów, a także łączenie pewnych koncepcyjnych pojęci (BusinessObject Universe, używanych w Web Intelligence) z kwerendami używanymi w Crystal Reports. W ten sposób powstaje pewna ujednolicona przestrzeń metadanych jednolicie definiujących znaczenie określonych informacji. Można także łączyć raporty z dokumentami BusinessObject i Web Intelligence, dzięki czemu związki między informacjami można wyrażać poprzez "jedno kliknięcie".

Crystal Reports XI w Visual Studio .Net 2005

Crystal Reports XI będzie standardowym elementem Visual Studio .Net 2005 - pomimo faktu, że Microsoft od ponad roku oferuje własny pakiet do tworzenia i publikacji raportów, o którym pisaliśmy na łamach CW kilkakrotnie. Trzeba jednak podkreślić, że Microsoft Reporting Services jest rozwiązaniem działającym po stronie serwera, zaś Crystal Reports można osadzić w aplikacji "okienkowej" i wygenerować raport po stronie klienta. Tak więc na razie, od najwcześniejszych wersji Visual Basic (a teraz - Visual Studio .Net) Crystal Reports jest rozwiązaniem do raportowania "na doczepkę", co nie przeszkadza mu w zajmowaniu pozycji niekwestionowanego lidera. Gdy do wersji VB 6.0 zamiast Crystal został dołączony komponent DataReport, wielu programistów było z tego powodu niezadowolonych.


TOP 200