Przejdź do głównej zawartości

Posty

Wyświetlanie postów z 2009

Crystal Reports w Visual Studio 2010

Testuję już Visual Studio 2010 i niecierpliwie czekałem na informacje czy Crystal Reports będzie nadal wspierany w Visual Studio.

Mamy już potwierdzenie, że tak.

Wprowadzonych zostanie wiele zmian:
- Crystal Reports nie będzie zawarty w Visual Studio 2010
- zamiast tego SAP udostępni za darmo do pobrania pakiet Crystal Reports for Visual Studio 2010
- wersja produkcyjna ukaże się nie później niż w 3 kwartale 2010
- jeśli chodzi o dystrybucję, to runtime MSM nie będzie już dostępny. Jedynie MSI i ClickOnce.


Nowości:
- WPF Viewer (na to czekałem)
- Export do Excela w formacie XLSX (format wprowadzony w Excelu 2007)
- Nowy format pliku RPT tylko do odczytu, nazwany RPTR. Plik RPTR będzie można stworzyć na podstawie pliku RPT.
RPTR będzie możliwy do otwarcia tylko przez przeglądarkę raportu. Designer nie będzie mógł podejrzeć w jaki sposób zbudowany jest raport, co ma zapewnić ochronę wartości intelektualnej.
- kaskadowe parametry (tego brakowało)



Na podstawie artykułu

Wartości ujemne w pozycjach

Ciekawy trick opublikował Ken Hamady.

Jak wiadomo, aby pobrać znak na określonej pozycji w ciągu tekstowym, wystarczy wywołać:
{Customer.Customer Name} [3]

(innym sposobem jest użyciu funkcji Mid)

Ale co ciekawe, jako pozycję można wstawiać wartości ujemne!
{Customer.Customer Name} [-1]

Powyższe wyrażenie pobiera ostatni znak w ciągu tekstowym.

To samo można przenieść na tablicę.

Aby pobrać ostatni element w tablicy wystarczy wywołać:
NumberVar array MyArray;
MyArray [-1]

To dużo łatwiejsze, niż używanie funkcji Length, Count or Ubound.

Na podstawie artykułu Using negative subscripts

Polska wersja Crystal Reports XI - refleksje

Przez wiele lat użytkownicy Crystal Reports, zwłaszcza ci nowi, dopytywali się o polską wersję tego produktu. Wreszcie pojawiła się już jakiś czas temu polska wersja Crystal Reports XI PL.
Jak wypadło tłumaczenie? Czy warto kupować polską wersję Crystal Reports XI?

Po zainstalowaniu i uruchomieniu zobaczymy polskie menu! Zakładki [Projekt], [Podgląd]. o jak miło...

Naciskamy F1 (Pomoc) i co widzimy? Help po angielsku :( Tutaj następuje pierwsze rozgoryczenie.

OK, rozwijamy menu.

Dowiadujemy się, że jesteśmy ekspertem od wszystkiego "Ekspert sekcji", "Ekspert grupy", "Ekspert XML", itd. Bezpośrednie tłumaczenie z angielskiego słowa Expert. Lepiej w tym miejscu brzmiałby "kreator". Idźmy dalej...

Kto zgadnie do czego służy opcja "Może rosnąć"? To tłumaczenie "Can grow" :)
W Excelu ładnie przetłumaczone na "Zawijaj tekst".

Kolejny kwiatek: "Wstaw wiersz", zamiast "Wstaw linię" (ang. Insert Line), co całko…

UFL w .NET

UFL (User Function Libraries) umożliwiają rozszerzenie i tak już bogatej palety funkcji w Crystal Reports. UFL najłatwiej pisać w starym poczciwym Visual Basic 6.0

Ale co zrobić jeśli pracujemy już tylko w Visual Studio .NET ?
Niestety, nie ma wprost takiej możliwości :(

Zobaczcie z resztą sami:
http://www.codeproject.com/KB/dotnet/DecryptForCrystal.aspx

Autor tworzy logikę funkcji w VSNET, ale na końcu sięga po VB 6.0, aby zobaczył ją Crystal Reports!

Obiecam zmierzyć się osobiście z tym problemem, aby wszystko zrobić w Visual Studio NET

Swoją drogą, ciekawy pomysł z enkrypcją danych.

Visual Studio 2010 i Crystal Reports

Zainstalowałem właśnie Visual Studio 2010 Beta 1. W szablonach aplikacji nie znajdziecie jednak Crystal Reports, ani jego komponentów na pasku narzędzi.

Ale uspokajam miłośników Crystala - ma się znaleźć w kolejnych odsłonach Visual Studio 2010.

Polecam wątek Crystal Reports dropped in Visual Studio 2010???

Ciekawe, jaką wersję Crystal Reports nam podarują...

Crystal Reports for Visual Studio 2008 a Crystal Reports 2008

Czym się różni się Crystal Reports for Visual Studio 2008 od Crystal Reports 2008?

Wersja wbudowana w Visual Studio jest bardzo odchudzona i warto pomyśleć o kupnie pełnej wersji, jeśli poważnie myślimy o wykorzystaniu tego narzędzia.

Porównanie wersji znajdziecie na stronie Crystal Reports for Visual Studio .NET Product Comparison

Porównanie wersji Crystal Reports od 8.0 do 2008

Mimo, że najnowsza wersja Crystala to Crystal Reports 2008, to nadal wiele osób, używa z powodzeniem starszych wersji. Zwykle są to wersje 10 i XI.

Czasami udzielając porady takiej osobie, nie pamiętam dokładnie w której wersji pojawiła się dana funkcja i czy użytkownik może jej użyć. Ja sam pracuję w Crystal Reports od wersji 6.5 :)

Z pomocą przychodzi wówczas tabelka: Features by edition Comparison Chart

Wersje trial Crystal Reports

Wersje trialowe 30-dniowe narzędzi Crystal Reports 2008, XI oraz XCelsius można pobrać ze strony: http://www.sap.com/solutions/sapbusinessobjects/sme/freetrials/index.epx

Wystarczy wypełnić formularz i pobrać wersję. Drogą mailową otrzymamy klucz licencyjny, który trzeba podać podczas instalacji. Przed 30 dni możemy pracować do woli :)

Obliczanie czasu pracy pracowników

Ostatnio miałem zapytanie od użytkownika Crystal Reports, który chciał w czytelny sposób przedstawić czas pracy swoich pracowników. Np. 7 godz. 25 min.

Zaproponowałem następujące rozwiązanie:
1. Tworzymy formułę @Czas i obliczamy różnicę pomiędzy czasem wejścia i wyjścia pracownika, w minutach:
DateDiff('n', godzina_wejscia, godzina_wyjscia)

2. Następnie tworzymy formułę, która wyświetli odpowiednio sformatowany czas:
Cstr(Truncate ({@Czas}/60) ,0) + ' godz. ' + cstr({@Czas} - Truncate ({@Czas}/60) * 60 ,0) + ' min.'

Przykładowy raport do pobrania tutaj.

Crystal Reports 2008 Service Pack 2

Właśnie wyszedł Service Pack 2 do Crystal Reports 2008.
Nowości: Oficjalne wsparcie dla Windows 7Instalator MSI nie wymaga już wprowadzania keycodeKontrolka .NET Winform Viewer potrafi wyświetlić osadzony obiekt flash w raporcieRozszerzenie interpretacji HTML poprawki błędów (link) SP2 do pobrania ze strony: Crystal Reports 2008 Service Pack Reference

Gdzie szukać Service Packów do Crystal Reports?

Zauważyłem, że niektórzy z użytkowników szukają Service Packów pod linkiem:http://resources.businessobjects.com/support/additional_downloads/service_packs/crystal_reports_en.asp#CRXIR2
Jest to stara, nie zawsze aktualna strona. Na przykład brakuje CR XI R2 SP 5.
Dlatego polecam korzystanie ze strony: http://service.sap.com/sap/bc/bsp/spn/bobj_download/main.htm
Wygodny filtr ułatwia wyszukiwanie.

Instalator

Jeśli ktoś z Was osadził Crystal Reports w swojej aplikacji, to niech nie odkłada tworzenie instalatora MSI na ostatnią chwilę... (swoją drogą, najlepiej jak instalator jest utrzymywany od samego początku projektu).
Mimo, że są SAP dostarcza moduły MSM to można być zaskoczonym błędami podczas linkowania msi. Takie niemiłe doświadczenie spotkało mnie przy tworzeniu instalatora z użyciem WiX.
SAP opublikował właśnie tutorial How to build a setup package with Crystal Reports 2008 SP1 merge modules and Visual Studio .NET 2008?
Mam nadzieję, że ułatwi on wreszcie deployment.

Add-in Show SQL Query and Result

Od dawna brakowało mi przy opcji Show SQL Query podglądu na pobrane dane. Postanowiłem skorzystać z możliwości, które daje CR 2008 i stworzyłem w C# własny dodatek (add-in).
Dodatek o nazwie Show SQL Query and Result, wyświetla zapytanie SQL oraz dodatkowo pobiera wynik zapytania.
Dzięki temu już nie trzeba przeklejać zapytania do innego narzędzia, aby zobaczyć co faktycznie zwraca zapytanie. Co więcej, zapytanie można od ręki modyfikować, ale tylko w celach diagnostycznych - zmodyfikowane zapytanie nie jest zapisywane do raportu, więc nie ma obaw, że "popsujemy" raport.
Instalacja: 1. Pobierz cscShowSQLQuery.dll 2. Skopiuj cscShowSQLQuery.dll do folderu: C:\Program Files\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\Addins jeśli nie ma podkatalogu Addins to załóż go. 2. Uruchom lub zrestartuj Crystal Reports 3. Otwórz raport, pojawi się nowe menu Add-ins | Show SQL Query
Ograniczenia - brak obsługi trusted connection - błąd, jeśli raport nie jest na bazie sql poprawię w ko…

Show SQL Query

Jak wyświetlić zapytanie SQL w swojej aplikacji, na którym oparty jest raport?Trzeba skorzystać z RAS SDK, gdyż sam Crystal Reports Engine tego nie umożliwia.
Oto kod w C#:
// Declarations // CrystalDecisions.CrystalReports.Engine.ReportDocument boReportDocument = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument boReportClientDocument; CrystalDecisions.ReportAppServer.Controllers.RowsetController boRowsetController; CrystalDecisions.ReportAppServer.DataDefModel.ISCRGroupPath boGroupPath = null; string temp = "";
// Load the report from the application directory boReportDocument.Load(filename); // Set database logon boReportDocument.SetDatabaseLogon(user, password);
// Access the ReportClientDocument in the ReportDocument (EROM bridge) // Note this is available without a dedicated…

Eksport raportu do XML

Crystal Reports potrafi eksportować raporty do formatu XML. Co więcej podczas eksportu można zastosować transformację XSL/XSLT. Dzięki temu uzyskujemy możliwość eksportu raportu do dowolnego formatu. Na przykład do tekstu, kanału rss, lub do formatu specyficznej aplikacji.
Kilka przykładów można znaleźć w artykule XSL AN XSLT TRANSFORMS FOR CRYSTAL REPORTS 2008 XML EXPORTING
To jest również sposób na drukowanie raportów Crystal Reports na drukarce tekstowej.

Crystal Reports 2008 For Dummies

Crystal Reports 2008 For Dummiesto książka dla początkujących użytkowników Crystal Reports. Kilka przykładowych rozdziałów można poczytać na google books: http://books.google.pl/books?id=Q0x21-20d3AC

Crystal Reports User Group

Powoli rusza strona społeczności (communites) polskich użytkowników Crystal Reports pod nazwą Crystal Reports User Group.
Pod adresemhttp://plcrug.org.pl/ znajdziecie tylko kilka tutoriali, ale pewnie za jakiś czas będzie więcej treści.
Zamierzam uczestniczyć w tym przedsięwzięciu i was też zachęcam do czynnego udziału.

Lookup User Function Library

SAP Business Objects opublikował funkcję UFL do Crystal Reports, która ułatwia tworzenie raportów wielojęzycznych (multilanguage). W zewnętrznym pliku XML możemy zdefiniować tłumaczenia słów na poszczególne języki. https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/604d2394-0a0f-2c10-9aa5-d5a3dc31c529
Mam nadzieję, że to krok do tego, aby w następnej wersji Crystal Reports taka funkcjonalność była wbudowana.

Crystal Reports 2008 Complete Reference

Zakupiłem właśnie książkę Crystal Reports 2008 Complete Reference.  Polecam ją wszystkim zaawansowam użytkownikom Crystal Reports.  Nie jest to książka dla początkujących, bo może ich przestraszyć ilość stron :)




















Przykładowy rozdział w google books: http://books.google.pl/books?id=WJimSiFQII0C

Win32 UFL

W Crystal Reports brakuje wielu przydatnych funkcji, np. nazwa zalogowanego użytkownika.
Bjarke Viksoe udostępnił za darmo zestaw funkcji Custom User Functions (UFL) do Crystal Reports. Dzięki temu uzyskujemy dostęp do funkcji Win32.
I tak, oprócz samego pobrania nazwy użytkownika, możemy odczytać parametru systemu, odczytać i zapisać wartość rejestru, utworzyć plik, a nawet uruchomić zewnętrzną aplikację!
Biblioteka do pobrania wraz z źródłami: http://www.viksoe.dk/code/u2lwin32.htm

Aby zainstalować bibliotekę wystarczy uruchomić skrypt install_ufl.js Niestety nie zadziała on z CR 2008. Ale wystarczy drobna poprawka:
Należy zamienić linię: strValue = WSShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Crystal Decisions\\9.0\\Crystal Reports\\CommonFiles");
na: strValue = WSShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Business  Objects\\Suite 12.0\\Crystal Reports\\CommonFiles"

W Additional Functions pojawi się gałąź win32 i już można korzystać z nowych funkcji.
Najlepiej otworzyć p…

Error #2170

W Visual Studio 2008 utworzyłem web service, a w Xcelsius 2008 kokpit korzystający z niego.
W środowisku projektowym XC wszystko działało poprawnie i mogłem cieszyć się odświeżaniem danych.

Problem:
Niestety po wyeksportowaniu projektu do SWF i otwarciu go w przeglądarce zaskoczył mnie przykry błąd Error #2170.

Przyczyna:
Okazało się, że jest problem z uprawnieniami:
http://www.adobe.com/devnet/flashplayer/articles/flash_player_9_security.pdf

Rozwiązanie:
Do roota serwera www należy dodać plik crossdomain.xml

Zatem do projektu Web Service'u dodałem nowy plik crossdomain.xml
i zaznaczyłem aby był kopiowany do docelowego katalogu .

Teraz wszystko działa poprawnie.

Refleksje po konferencji SAP Business Objects 2009

Wczoraj (11.03.2009) miałem przyjemność uczestniczyć w konferencji SAP Business Objects 2009 zorganizowanej przez Connect Distribution.

Szczegółowa agenda znajduje się tutaj:
http://www.connectdistribution.pl/dostawcy/business-objects/konferencja-2009-agenda.html

Pewnie większość osób czekała na informacje, co dalej z produktami rodziny BO, zwłaszcza Crystal Reports, po przejęciu przez SAP.

Niestety przedstawiciel SAP'a, pan Cyril Jansen, poza marketingowymi ogólnikami nie powiedziałem nic konkretnego. Na szczęście wszystkich uspokoił Pan Sławomir Karpiński, zapewniając, że SAP nadal będzie rozwijać Crystal Reports.

Podczas kilku prezentacji można było sporo dowiedzieć się o produktach SAP Business Objects (m.in. Infoview, BO Edge Series, CR 2009, xCelsius).

Z mojego punktu widzenia najciekawsze były nowości w CR 2008 przedstawione przez Michała Hornunga, zwłaszcza możliwość osadzania obiektów flashów w raportach. Dzięki temu środowisko CR staje się bardziej otwarte i możliwe staje się …

Wersja Crystal Reports

Deployment

Jak już udało nam się zintegrować Crystal Reports z własną aplikacją to często stajemy przed problemem deploymentu (właściwie od tego powinniśmy zacząć).

Deployment komponentów Crystalowych nigdy nie był prosty i zmieniał się z wersji na wersję.
Teraz jest to dużo łatwiejsze bo wystarczy jeden moduł msi lub msm.

Polecam stronę na której zebrane są w jedno miejsce wszystkie biblioteki do poszczególnych wersji Crystal Reports:
Crystal Reports for Visual Studio .NET Runtime Distribution - Versions 9.1 to 12.0

Obowiązkowy link dla programistów integrujących rozwiązania Crystal Reports z własnymi aplikacjami.

Crystal Reports Viewer 2008 for Mac

Nie wiem czy wiecie, ale Crystal Reports Viewer 2008 istnieje również w wersji Mac'owej.
Dzięki temu nasz raport może być tak samo przeglądany jak na PC.