Przejdź do głównej zawartości

Posty

Konwersja w SQL Expression

Ostatnio musiałem skorzystać z wyrażeń SQL Expression, które opisałem  tutaj , ale dodatkowo dokonać jeszcze konwersji typu. W edytorze wyrażeń SQL Expression odnalazłem funkcję Convert, która niestety nie jest opisana w dokumentacji. Na szczęście poprzez analogię do funkcji dostępnej w TSQL, doszedłem jak z niej korzystać: {fn Convert("Persons"."Age", SQL_CHAR)} Ale pozostał jeszcze problem w jakim formacie podawać typy danych.  Metodą prób i błędów doszedłem jakie typy są obsługiwane: SQL_VARCHAR SQL_CHAR SQL_DATE SQL_NUMERIC SQL_BIT

Crystal Reports for Visual Studio SP 8

Uwaga programiści! SAP wydał kolejnego, już ósmego(!) Service Packa do Visual Studio 2010/2012. Warto zatem zaktualizować swoje developerskie maszynki, bo usuwają kilka bugów. Jeśli do instalacji swojej aplikacji używacie technologii clickonce to koniecznie pobierzcie dodatkowego patch'a  link Ci którzy przesiedli się na Visual Studio 2013 jeszcze muszą chwilę poczekać, bo dopiero kolejny Service Pack będzie wspierał najnowszą wersję Visual Studio, który ma się ukazać w 1 kwartale 2014 roku.

Zalogowany użytkownik

Często na moich szkoleniach spotykam się z pytaniami od uczestników w jaki sposób wyświetlić na raporcie nazwę zalogowanego użytkownika. A jeszcze lepiej, żeby można było po tym filtrować. Owszem, Crystal Reports posiada standardowe funkcje CurrentCEUserID i CurrentCEUserName, które zwracają identyfikator lub nazwę aktualnego użytkownika ale działają tylko gdy logujemy się do Crystal Reports Server (Crystal Enterprise). A co jeśli posiadamy zwykłego Crystal Reports i logujemy się do domeny lub do bazy danych? Niestety od dawna brakuje takiej funkcji. Ale przy odrobinie sprytu możemy odpytać o to bazę danych! Nadszedł wreszcie czas aby użyć SQL Expression o których pisałem wcześniej . Wystarczy w nawiasach (koniecznie!) wpisać nazwę funkcji SQL Server: (SYSTEM_USER) i umieścić pole na raporcie lub wykorzystać w warunku filtrującym! W przypadku innych baz danych, np. Oracle musimy użyć odpowiednio innej funkcji. Powodzenia!

Commands - dobre rady

Po dłuższej przerwie w blogowaniu postanowiłem napisać k ilka dobrych rad przy stosowaniu Command: 1. Nie należy łączyć ze sobą kilku Command lub Command z tabelą/widokiem bezpośrednio crystalu. Zamiast tego należy przepisać zapytanie ze złączenia do jednego command. Dzięki temu zapytaniem zajmie się motor bazy danych i prześle tylko wynikowe dane. W przeciwnym razie to Crystal Reports pobiera dane z poszczególnych źródeł i ostro walczy na komputerze klienta co objawia się bardzo wolnym generowaniem raportu. 2. Nie filtrować command za pomocą standardowej opcji Selection Formula. Zamiast tego należy dodać where do zapytania SQL w Command. Dzięki temu filtrowanie będzie po stronie bazy danych z użyciem indeksów (jeśli istnieją). W przeciwnym Crystal Reports pobiera wszystkie dane z Command i filtruje lokalnie, co najczęściej prowadzi do bardzo wolnego generowania raportu i zapychania łączą. 3. Nie używać standardowych parametrów do filtrowania Command . W Command jest osobna opcja do ...

Could not load file or assembly crdb_adoplus.dll

Jeśli tworzymy aplikację w .NET, która posiada raporty Crystal Reports oparte o źródło danych DataSet lub kolekcję obiektów (IEnumerable) to po jej uruchomieniu otrzymamy zaskakujący błąd: Could not load file or assembly 'file:///C:Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified: C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll. Na szczęście rozwiązanie jest bardzo proste - wystarczy do pliku konfiguracyjnego dopisać: <startup useLegacyV2RuntimeActivationPolicy="true">   <supportedRuntime version="v4.0"/> </startup>

Funkcje Crystal Reports

Crystal Reports posiada bardzo dużo funkcji (ok. 200) do operacji na tekstach, liczbach, datach itd. Można się z nimi zapoznać przeglądając drzewo Funkcje (Functions) w Edytorze Formuł (Formula Editor) i czytając helpa. Warto je znać, aby nie wyważać otwartych drzwi.  Problem w tym, że trzeba wiedzieć czego się szuka.   Dla wielu osób dodatkową barierą może być język angielski, bo nawet w polskiej wersji Crystala, help, o przepraszam.... pomoc jest w języku Szekspira. Dlatego stworzyłem niegdyś listę funkcji Crystal Reports w języku polskim, którą otrzymywali uczestnicy moich szkoleń w formacie PDF.  Teraz postanowiłem  opublikować ją w sieci, aby była zawsze była pod ręką i dostępna dla szerszego grona.  Lista funkcja dostępna jest tutaj . Lista funkcji nie jest jeszcze w pełni kompletna, więc będę ją na bieżąco aktualizować. Czekam na wasze komentarze i uwagi, zwłaszcza propozycje lepszych tłumaczeń. Miłego korzystania!