W tym wątku chciałbym zebrać inne metody tworzenia raportów, które mogłyby być interesujące dla klientów Progressa.
ReportMill Software - dostajemy darmowe oprogramowanie do tworzenia raportów napisane w Javie oraz dokumentacje i kilka filmów demo. http://www.reportmill.com/gallery/BasicReport/
Płatny jest natomiast support.
Jest do pobrania także darmowy graficzny edytor Javy - SnapCode.
W sumie to ciekawa alternatywa dla .NETa.
Dla tych, którzy nie chcą korzystać z żadnego zewnętrznego systemu raportowania mogę zaproponować inne rozwiązanie: XML + XSL + CSS.
Plik XML można bez trudu wygenerować z aplikacji 4GL. Załączam przykładowy taki plik. Program do jego wygenerowania załączę również w razie potrzeby.
Żeby dane z pliku XML miały jakąś ładniejszą postać należy je przeformatować za pomocą pliku XSL.
W pliku XSL wykorzystuje się dobrze znane parametry Cascading Style Sheets (CSS).
Aby obejrzeć cały efekt trzeba pobrać te 3 pliki do jednego katalogu i otworzyć plik XML.
Można tak tworzyć o wiele bardziej złożone raporty, a sposoby wyświetlania są nieograniczone.
Ponieważ niniejszy wątek jest wciąż otwarty, to pozwolę sobie wspomnieć o jeszcze jednym rozwiązaniu zastosowanym w QAD.
QAD od kilkunastu lat korzysta z komponentów UI firmy Component One (w skrócie C1), w tym z komponentu Reporting (de facto w wersji EE korzystają także z raportów Crystal Reportów, lecz są one sukcesywnie zastępowane prze raporty C1).
Temat raportowania (raportów graficznych) QAD rozwiązało wzorowo i elegancko.
Jest tu wszystko co powinien mieć nowoczesny podsystem raportowania:
a) definiowania zródła danych do raportu (osobna kortoteka); źródłem danych może być: Progress Query, progress program, tzw. "proxy", który w postaci datasetu i metadanych, przygotowuje dane oraz wywołanie API (które podobnie jak proxy zwraca dataset i metadane),
b) silnik raportu -- działa tylko w Windows (.NET);
c) Report Designer -- tworzący Layout; jest wsparcie dla Visual Basic'a
d) Pre-rendering -- pozwala na podstawie jednego layotu tworzyć wiele wersji językowych raportu
e) eksport definicji raportu do .XML,
Załączam screena z ogólną architekturą podsystemu.
De facto funkcjonalności raportowania jest jeszcze więcej....