Raporty jak z rękawa

Crystal Reports XI nie wprowadza rewolucyjnych zmian, lecz przemyślane, cząstkowe modyfikacje ułatwiające definiowanie raportów i ich udostępnianie.

Crystal Reports XI nie wprowadza rewolucyjnych zmian, lecz przemyślane, cząstkowe modyfikacje ułatwiające definiowanie raportów i ich udostępnianie.

Trudno dziś znaleźć aplikację, która nie oferuje jakiejś formy funkcji raportowania - czy to dla użytkownika, czy dla administratora. Syntetyczne lub szczegółowe, tabelaryczne zestawienia danych w różnych układach, najlepiej jeszcze z wykresami, to coś, czego jakość w praktyce przesądza o użyteczności aplikacji. Jeśli dane nie dadzą się sprowadzić do takiej postaci, powstaje pytanie, czy ich gromadzenie i przetwarzanie ma w ogóle sens.

Z drugiej strony, twórcom aplikacji trudno przewidzieć, jakie dane będą tak naprawdę potrzebne użytkownikom. Zwykle jest tak, że człowiek chce jednocześnie analizować dane pochodzące z wielu źródeł - nie tylko jednej aplikacji. Oczywiście, jest to do osiągnięcia w ramach procesów integracyjnych, ale jest to trudne i długotrwałe. Prościej, szybciej i taniej jest zrobić raport, który sięgnie do konkretnego systemu i wydobędzie to, co akurat jest potrzebne do analizy.

Najnowsza - jedenasta już wersja systemu raportowego Crystal Reports spełnia wszystkie postawione wyżej wymagania, a nawet je przewyższa. Co więcej, oferuje mnóstwo drobnych udogodnień, które po dłuższej pracy z raportami okazują się bardzo przydatne.

Źródła danych

Raporty jak z rękawa

W stosunku do poprzedniej wersji zawarty w pakiecie Crystal Reports XI projektant raportów zawiera kilka zmian ułatwiających pracę. Po ustaleniu początkowego układu, można przełączyć się na "podgląd" i dalej ustawiać formatowanie w tym trybie.

Źródłem danych dla raportu Crystal Reports XI (CR XI) może być niemal wszystko - motor RDBMS, bazy plikowe, bazy dostępne za pośrednictwem ADO, DAO, ODBC czy JDBC, dowolny obiekt COM, system plików, log serwera WWW, kostka OLAP, foldery publiczne Exchange, pliki XML... Naprawdę trudno znaleźć źródło, z którego Crystal Reports nie może korzystać.

Do każdego źródła przypisany jest "alias", który w połączeniu z nazwą pola jednoznacznie je identyfikuje. Dzięki temu, że dla Crystal Reports XI liczy się tylko para alias+nazwa pola, rzeczywiste źródła danych można w prosty sposób wymieniać, co jest bardzo wygodne. Oprócz definicji samego źródła, Crystal Reports zapewnia API pozwalające przekazywać aplikacji informacje o stanie połączenia ze źródłem danych. Programista może więc np. wybrać, czy woli, by raport pytał użytkownika o hasło do bazy źródłowej, czy też raczej, by to program przekazał potrzebne informacje do motoru CR.

Gdy źródła danych są już zdefiniowane, Crystal Reports ujawnia swoje prawdziwe oblicze, pozwalając w jednym zapytaniu SQL zawrzeć zapytania do wielu źródeł jednocześnie. Oczywiście, nie wszystkie operacje wykonuje motor Crystal Reports - część warunków przekazywanych jest np. do bazowych RDBMS. Również grupowanie wyników może być (o ile projektant tak zdecyduje) wykonane po stronie bazy danych. Tu uwaga: Crystal Reports jest dostosowany do obsługi relacyjnych baz danych. Może też pracować z kostkami OLAP. Jednak jeżeli źródłem danych jest plik XML, zostanie on automatycznie przekształcony do postaci tabelarycznej - nie ma możliwości, by użyć np. XPath do filtrowania danych.

Warto też dodać, że można użyć tzw. plików z definicjami pól - gdzie określona jest nazwa, typ i długość, a także przykładowa wartość. Wtedy w narzędziu do projektowania można używać tych pól jak wiele innych (nawet w kwerendach), a dopiero podczas generowania raportów wypełnić je danymi. Dotyczy to głównie sytuacji, gdy aplikacja "zawiera" raport - jednak takich sytuacji jest sporo i niewątpliwie taka opcja daje największą kontrolę programiście - to tylko od niego zależy skąd pochodzą dane.

Projektant raportów

Raporty jak z rękawa

Projektując formuły w Crystal Reports XI można odwołać się do bogatego zestawu gotowych funkcji, a także zdefiniować własne. Tworzenie formuł przypomina pisanie normalnego programu, ale zawsze można wybrać np. funkcję, pole czy aktywną wartość jakiegoś parametru, klikając na odpowiedni element.

Crystal Reports ma bardzo rozbudowane możliwości prezentowania oraz formatowania informacji. Dane mogą być umieszczane w polach tekstowych lub automatycznie budowanych tabelach, mogą być grupowane, można przedstawiać podsumowania itd. Tabele można uzupełnić wykresami, do czego Crystal Reports XI dostarcza bardzo rozbudowane narzędzia. Jest nawet specjalna kontrolka "kostki" do prezentacji danych OLAP. Przy okazji - w CR XI jest bardzo udany mechanizm generowania tabel przestawnych, czyli takich, w których kolumny powstają na podstawie wierszy z danymi.

Crystal Reports XI zawiera także narzędzia dedykowane do prezentacji danych w układzie geograficznym, na mapie. Po dodaniu elementu do raportu uruchamiany jest odpowiedni "ekspert", który ułatwia konfigurację np. właśnie wspomnianej kontrolki pokazującej dane z kostki OLAP. Dodanie podsumowania (sumy, czy też średniej w danej grupie itp.) to dosłownie jedno kliknięcie - projektant od razu ustawi podsumowanie w dobrym miejscu, nawet w przypadku gdy sumowane są dane w skomplikowanej kostce.

Projektując raport można od razu zerknąć, jak on będzie ostatecznie prezentowany użytkownikowi. Można nawet, po ustaleniu początkowego układu, przełączyć się na "podgląd" i w tym trybie ustawiać formatowanie czy przesuwać elementy. W ten sposób od razu można stwierdzić, jak projektowany układ pasuje do danych, które mają być prezentowane w raporcie.

Dużą zaletą Crystal Reports XI jest możliwość automatycznego przesuwania elementów raportu w momencie, gdy np. dane są za długie, by zmieścić się w danym polu. Producent zawarł też w pakiecie interesujące narzędzie o nazwie Highlight Expert, które pozwala określać warunki wyróżniania pewnych wartości prezentowanych w raporcie, jeśli spełnią określony warunek czy też zestaw warunków.

Formuły i programowanie

Formuły w Crystal Reports XI to tak naprawdę znacznie więcej niż proste wyrażenia regularne. Motor CR XI oferuje dwa języki programowania - Crystal i Basic. Funkcjonalnie są one bardzo zbliżone, ale Crystal jest językiem dostępnym w CR "od zawsze" i jest dostosowany do standardowych potrzeb przy tworzeniu raportów. Można w nim np. łatwo określić, co będzie wykonywane przy generowaniu nagłówka, co przy każdym wierszu itp. Basic przeznaczony jest głównie dla tych, którzy nie chcą uczyć się nowego języka, a potrzebują coś dodatkowo policzyć w raporcie.

Formuły mają wiele zastosowań. Mogą być użyte we wszelkiego rodzaju polach - jako źródło danych. Mogą określać sposób formatowania informacji - albo np. narzucić zasadę, że pewne pola nie będą pokazywane, gdy zajdą określone warunki. Tworzenie formuł przypomina pisanie normalnego programu, ale zawsze można wybrać np. funkcję, pole czy aktywną wartość jakiegoś parametru, klikając na odpowiedni element. Niestety - edytor pozbawiony jest np. mechanizmów podpowiadania składni czy innych ułatwień dla programisty. Jednak należy dodać, że zwykle te skrypty są bardzo krótkie. Można natomiast ustawiać pułapki w skryptach i np. śledzić wyliczenie formuł krok po kroku.

Wzorzec do naśladowania

Crystal Reports jest wzorcowym narzędziem do raportowania, z którego czerpią wszyscy konkurenci. To stały element krajobrazu - dla Crystal Reports dostępnych jest wiele narzędzi firm trzecich, np. .rpt Inspector, który upraszcza równoległą modyfikację wielu definicji raportów, czy dodatkowe narzędzia upraszczające masową publikację raportów w sieci WWW. Z uwagi na cenę i sposób licencjonowania narzędzi Crystal Reports wiele firm programistycznych decyduje się wykorzystywać alternatywne platformy raportowe, jak chociażby Active Reports, XtraReports czy QuickReports itp. Narzędzia te nie dysponują wprawdzie tak wyrafinowanym motorem do integracji danych pochodzących z wielu heterogenicznych źródeł, czy rozbudowanymi formułami, ale w wielu przypadkach w zupełności wystarczą do tego, by w elegancki sposób zaprezentować informacje, a dodatkowo - zwykle pozwalają dać użytkownikowi możliwość samodzielnego zdefiniowania zawartości raportu. Poza tym większość z nich bardzo dobrze można zintegrować z własną aplikacją.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200