Crystal Reports - narzędzie do raportowania

Posted by Piotr Tucholski on 27-Aug-2014 05:55

Witajcie,

Ostatnio kilku klientów zwróciło się do nas z podobnym pytaniem, związanym z raportowaniem w Progress OpenEdge.

Jak wiadomo, do wersji 9 był Report Builder - narzędzie Progressa. Później Progress rekomendował Crystal Reports, narzędzie zewnętrzne, bardzo czytelne, intuicyjne, które dzięki kontrolkom OCX dawało możliwość osadzania raportów w aplikacjach ABL.

Obecnie Crystal Reports jest własnością SAP, który wstrzymał wsparcie dla OCX. Wspiera natomiast środowisko Java i .NET, a .NET to już blisko aplikacji ABL.

Używając środowiska OE Developer Studio można otworzyć w aplikacji ABL wygenerowany wcześniej raport. Bardzo przydaje się znajomość programowania w .NET.

Samo tworzenie raportów w CR na bazie OE wymaga połączenia poprzez ODBC.

All Replies

Posted by mppOE on 29-Aug-2014 04:19

Wykorzystuję  w aplikacji OE 10.2B01 (Win32) raporty tworzone w CRXI R2, z aplikacji są one dostępne właśnie poprzez kontrolkę OCX. Rozważam przejście na nowsze wydanie Crystala oraz OE 11, potrzebowałbym informacji nt. - rodzajów/cen licencji najnowszego Crystala. A także jakiś minimalnie skomlikowany przykład dla OE 11 - jak można wywołać z programu *.p raport w Crystalu, tak żeby pojawił się w oknie/ramce/viewerze podobnie jak było to możliwe z zastosowaniem OCX (OCX dla CR nie działa w OE 11).    

Posted by Piotr Tucholski on 29-Aug-2014 04:30

Witaj Marku na PUGu,

Odpowiedź na pierwsze Twoje pytanie jest prosta. Na całą firmę wymagana jest jedna licencja developerska o wartości 479 Euro.

Posted by Piotr Tucholski on 31-Aug-2014 05:07

Wracam do pytania odnośnie osadzania raportów we własnych aplikacjach.

W ABL można zrobić to przez formy .NET.

Należy pobrać i zainstalować Crystal Reports Runtime Engine, zawierający dll dla CR.

Ja pobrałem ze strony: www.jeff-net.com/.../index.php

Nastęny krok, lub raczej zestaw czynności został dokładnie opisany w bazie wiedzy pod hasłem:

How to add the .NET Crystal Reports Viewer into a form?

Posted by Piotr Tucholski on 31-Aug-2014 05:15

W powyższym artykule definiujemy klasę ReportViewer.cls.

Aby otworzyć konkretny raport należy przekazać odpowiednie parametry lub zrobić to bezpośrednio w klasie.

Załączam przykład dla c:\Raport1.rpt.

Posted by Piotr Tucholski on 31-Aug-2014 15:23

Aha, jeszcze przykład jak uruchomić klasę jak plik procedury (.p).

Załóżmy, że chcemy uruchomić formę myForm.cls.

Wystarczy uruchomić prosty załączony program runForm.p.

Posted by mppOE on 02-Sep-2014 05:13

Dziękuję za przykłady ilustrujące możliwość wywołania "nie OCX-owego" viewera Crystala z aplikacji ABL. To co byłoby mi faktycznie potrzebne, to przykład tak opracowany, by nie było konieczne korzystanie z Visual Designera (mam "stary" typ licencji Visual Studio - nie zawierający Visual Designera, a jedynie AppBuilder) oraz bardziej rozwinięta sekcja dotycząca wywołania raportu - chodzi o dynamiczne przyłączenie bazy (lub kilku baz) bezpośrednio przed uruchomieniem raportu oraz dynamiczne podstawienie parametrów raportu. Na pewno taki przykład można opracować - w końcu Progress wszystko może :). Natomiast raport wywołany tak jak w podanym przykładzie - przyłącza bazę (lub bazy), która była na sztywno zapisana w trakcie projektowania raportu (design time), a wszystkie ewentualne parametry wywołania raportu użytkownik musi wklepać z ręki w pojawiającym się okienku dialogowym. W wielu zastosowaniach - cześć (lub wszystkie) parametry raportu wynikają z kontekstu wywołania z aplikacji i uzytkownik nie powinien ich własnoręcznie wprowadzać. Jeśli chodzi o przyłączanie baz, to w Crystalu jest to dodatkowo skomplikowane w przypadku np., gdy raport korzysta z kilku baz, a także w przypadku użycia podraportów.

Posted by infokor on 02-Sep-2014 05:31

Witam ..

Widzę że masz problem z Crystall Report ..

My w INFO-KOR używaliśmy tego narzędzia ale trochę inaczej.

Podstawowe założenie: że raporty będą w formacie PDF i że na żadnym stanowisku roboczym nie musisz instalować Crystall Report. Muszę nadmienić że korzystamy z AppServer'a.

Problemem było przyłączenie się do bazy, więc ominęliśmy to zrzucając dane do DATASET'a a ten DATASET w postaci pliku był źródłem danych do raportu.  Skończyły się problemy z ODBC , z licencją  pod SQL, zmiana struktury  itp.

Uruchamiany był raport podajemy parametry i otrzymujemy plik PDF który prezentujemy klientowi.

Wiem, że nie pozwala to na interaktywne raporty, ale to odrzuciliśmy w początkowym założeniu.

Jeśli jeszcze coś Ci mogę pomóc to dzwoń :

Paweł Korczak 604 224 394

Posted by mppOE on 02-Sep-2014 09:08

Problemem nie jest Crystal czy SQL, tylko trudność zmiany implementacji prezentacji raportu jaką zastosowałem ileś lat temu w aplikacji, bazującej na technice viewera OCX (sugerowanej wtedy przez Progress Support w KB), która "wyleciała z obiegu" w OE 11. Problemem nie jest też źródło danych (plik czy baza) ani format prezentacji (pdf czy Crystal Viewer). Problemem jest brak  (mimo pewnego szkicu w KB i przykładu Piotrka, których nie udało mi się zaadoptować do moich potrzeb) - prostej instrukcji/przykładu jak zaimplementować "wywołanie raportu w viewerze" w dostępnej obecnie technice.

Jeśli już ograniczyć się do statycznego pdf jako formatu prezentacji i źródeł danych do raportów w postaci plików (nie koniecznie muszą być generowane z Data Setów) - to pozostaje pytanie czy wogóle warto do tego zaprzęgać Crystala.

Posted by Piotr Tucholski on 18-Jun-2015 03:23

Dostałem zapytanie od klienta czy to prawda, że do tworzenia raportów w VS 2013 trzeba mieć wersję Professional - Express nie wystarczy. Zainstalowałem Crystal Reports for Visual Studio 2013

( www.aspsnippets.com/.../Download-Crystal-Reports-for-Visual-Studio-2013.aspx )

W Visual Studio powinienem mieć teraz opcję Add => New Item => Reporting => Crystal Report

ale nic z tego, nie ma. Mam pytanie do kogoś kto jest biegły w VS i .NET czy tak rzeczywiście jest, że trzeba mieć wersję Profi? Mogę dodać assemblies Crystala, ale co dalej?

Dzięki.

This thread is closed