Przejdź do głównej zawartości

Licencjowanie komponentów Crystal Reports

Dzisiejszy wpis przeznaczony jest dla programistów, którzy budują rozwiązania z użyciem komponentów programistycznych Crystal Reports.

Jednak tym razem nie będę pisać o aspektach technicznych lecz chciałem zwrócić waszą uwagę na kwestie licencjonowania komponentów programistycznych Crystal Reports bo to nie jest łatwa sprawa.

Jeśli posiadamy płatną licencję na Visual Studio lub używamy darmowej wersji Community to ze strony SAP'a możemy pobrać za darmo Crystal Reports for Visual Studio. Przypominam, że darmowa wersja Visual Studio Express nie wspiera Crystal Reports. Swoją drogą jeśli ktoś z Was używa jeszcze wersji Express to niech czym prędzej ją odinstaluje(!) i zainstaluje w to miejsce wersję Community. To w pełni funkcjonalne Visual Studio niemal jak wersja Professional a do tego darmowa! Jeszcze do niedawna Microsoft kazał sobie płacić za to około 2000 PLN.

Ale wróćmy do licencjonowania Crystal Reports. Niespodzianki mogą pojawić się z chwilą wdrożenia naszego rozwiązania u klienta. Z punktu technicznego będzie wszystko grało ale możemy wejść w konflikt jeśli chodzi o licencjonowanie i może się pojawić problem przy jakimś audycie.

Niestety zasady licencjonowania zmieniały wraz się wraz z wersjami Crystal Reports i można się w tym pogubić. Sam nie jestem w tym mocny pomimo tego, że tyle lat pracuję z tym produktem i wdrażałem wiele rozwiązań.

Dlatego warto zapoznać się z oficjalnym dokumentem (ang) SAP Crystal Solutions Licensing, które opublikował producent Crystala.

Jeśli będziecie mieli jakieś pytania to proszę o zadawanie ich w komentarzach do tego wpisu. Mam dobry kontakt z dostawcą oraz przedstawicielstwem na Wschodnią Europę więc w razie jakichkolwiek wątpliwości wyjaśnię je u samego źródła.

O doświadczeniach podczas wdrażania komponentów Crystala od strony technicznej napiszę w którymś kolejnym poście więc zostańmy w kontakcie.
Prześlij komentarz

Popularne posty z tego bloga

Lista funkcji Crystal Reports po polsku

Opracowałem kiedyś skróconą listę funkcji Crystal Reports po polsku, aby mieć podręczną ściągawkę podczas tworzenia formuł. Pewnie i Wam się przyda dlatego ją teraz publikuję. To oczywiście tylko kilkadziesiąt funkcji spośród kilkuset, które znajdują się w Crystal Reports. Dlatego zamierzam stworzyć kompletną listę funkcji CR 2008.

Postaram się również dodać kolumnę z wersją Crystal Reports od której jest dostępna funkcja, bo wciąż są użytkownicy starszych wersji.

Czekam na sugestie, komentarze i ewentualnie propozycje lepszych tłumaczeń.

Na początek pytanie - jaki format preferujecie? PDF, HTML a może HTML Help z możliwą wyszukiwania?

Jak używać SQL Expression?

SQL Expression to taka formuła, której treścią jest zapytanie SQL do bazy danych.

Niestety, bezpośrednie wklejenie zapytania SQL kończy się najczęściej błędem"Error in compiling SQL Expression : Failed to retrieve data from the database".

Większość użytkowników w tym momencie kończy przygodę z SQL Expression, gdyż podręcznik użytkownika niewiele mówi na ich temat i nie przytacza żadnego przykładu.

Rozwiązanie jest na wyciągnięcie ręki...

Treść zapytania SQL musi być otoczone nawiasem! - to taki pomysł twórców Crystala.

Zapytania musi zwracać wartość skalarną! - czyli musi zwracać pojedynczą wartość, a nie zestaw rekordów. Najczęściej jakąś funkcję agregującą np. sumę

Oto przykład:

Gotowe! Taką formułę można umieścić na raporcie lub wykorzystać do dalszego przetwarzania.


To również bardzo dobry sposób na optymalizację raportu, zwłaszcza w przypadku gdy posiadamy w raporcie podraporty, które służą tylko pobieraniu pojedynczej wartości. Niestety trzeba znać chociażby podstawy jęz…

Funkcje warunkowe

W większości raportów w formułach stosujemy funkcje warunkowe.
Okazuje się, że Crystal Reports posiada wiele różnych konstrukcji warunkowych, które warto znać i dobierać do konkretnego przypadku.


Funkcja if-else-then

To podstawowa i najczęściej stosowana funkcja warunkowa w Crystal Reports.

Przykład:
if {Orders Detail.Quantity} <> 1 then "wiele wartości" else "wartość pojedyncza" 

Pamiętajcie, że typ formuły jest określany na podstawie pierwszej zwracanej wartości. W związku z tym nie możemy mieszać typów w jednej formule.

Przykład niepoprawny:
if {Orders Detail.Quantity} <> 0 then {Orders Detail.Quantity} else "nothing" 

Taka formuła wyświetli błąd, gdyż Crystal spodziewa się wartości numerycznej na podstawie pierwszej pierwszej wartości. Zatem musimy dokonać jawnej konwersji typu.

Przykład poprawny:
If {Orders Detail.Quantity} <> 0 Then ToText({Orders Detail.Quantity}) Else "nothing" 



Funkcje if-then-else można zagnie…