2009-08-04 14 views
5

Czekam na osadzenie JasperReports w istniejącej aplikacji internetowej do raportowania. Webapp znajduje się na bazie istniejącej bazy danych, która jest stara i złożona, i naprawdę nie nadaje się do tworzenia raportów dla reporterów bezpośrednio.JasperReporty i niestandardowe źródła danych

To, na co patrzę, to napisanie jakiegoś wrappera wokół naszej istniejącej warstwy dostępu do danych (napisanej, aby ułatwić nam życie, rozmawiając ze wspomnianym starodawnym i złożonym db). Czy ktokolwiek ma jakieś doświadczenie w pisaniu niestandardowych źródeł danych dla JasperResports lub robienia czegoś takiego?

Updated

Chyba prawdopodobnie nie było jasne, w moje pytanie - co jest prawdopodobnie dlatego, że moje wymagania nie są jasne, albo. Chcę zapewnić, że użytkownicy końcowi mogą używać czegoś takiego jak iReport do tworzenia raportów w bazie danych, a następnie używać JasperReportServer do planowania/przeglądania raportów. Baza danych jest jednak naprawdę nieprzyjemna i nigdy nie została zaprojektowana do tego celu. Mamy wokół niego warstwę dostępu, której używa aplikacja internetowa do komunikowania się z nią. Chcę całkowicie uniemożliwić użytkownikom końcowym korzystanie z DB, a pomysł niestandardowego źródła danych korzystającego z warstwy dostępu wydawał się dobrym rozwiązaniem. Jednak znalazłem bardzo mało dokumentacji, jak to zrobić. Może to po prostu o wiele łatwiejsze, niż myślę, a ja po prostu próbuję zrobić martwą prostą rzecz zbyt skomplikowaną.

Updated

Dzięki za odpowiedzi. Nie sądzę, że mój problem został rozwiązany, ale myślę, że odpowiedzi pomogły w poinformowaniu fazy wymagań.

Odpowiedz

3

Każdy szablon JasperReports może mieć dwa różne źródła danych. Jednym z nich jest zahaczenie go bezpośrednio do bazy danych za pomocą jakiegoś sterownika jdbc lub, w twoim przypadku, dostarczenie zbioru fasoli Java (POJO), zwykle lista.

Szablon JasperReports jest podobny do definicji metody. Ma nazwę, tj. Skompilowany obiekt JR i parametry (źródło danych i listę parametrów wejściowych niektórych najpopularniejszych typów Java).

Moja sugestia to użycie narzędzia iReport. Otwórz przykład dołączony do pakietu JasperReports, przeanalizuj go i dostosuj. To nie jest takie skomplikowane.

UPDATE

Letting klienci Authoring szablony JasperReports, tworzenia i dodawania do ścieżki klasy oznacza, że ​​trzeba otworzyć swój system za dużo. Zwykle klienci podają opis pożądanego raportu, a programiści tworzą źródło danych i projektują szablon. JasperReports może mieć parametry. Jeśli te parametry zostaną ujawnione za pomocą interfejsu użytkownika, użytkownicy mogą zmienić zachowanie raportów w środowisku wykonawczym.

Jeśli naprawdę potrzebujesz większej elastyczności, użyj interfejsu API dostarczonego przez JasperReports do tworzenia szablonów tworzenia treści. Mogę sobie wyobrazić proste DLS dla zaawansowanych użytkowników do komunikowania się z systemem, tworząc raporty w locie.

+0

Nie wiedziałem, że mogą mieć wiele danych źródła. Plan polega na użyciu programu iReport do tworzenia raportów. Myślę, że to, czego tu brakuje, dotyczy sprawdzania mojej warstwy dostępu, żaden z przykładów, które widziałem, nie pokazał niczego na ten temat. Zaktualizowałem to pytanie. –

4

Raporty Jaspera umożliwiają korzystanie ze źródła danych "JavaBeans". Możesz załadować swoje dane do dowolnej struktury Java Bean i zbudować raporty na ten temat. Działa dobrze.

Zobacz sekcję "Niestandardowe źródło danych" here.

+0

Dzięki. Już to widziałem i pokazuje tylko podstawowy przykład.Myślę, że mogę zobaczyć, jak wyciągnąć różne parametry z raportu. Nie mogę zobaczyć, jak przedstawić dostępne pola autorowi raportu. –

+1

Sposób, w jaki to zrobiliśmy, polega na utworzeniu pliku jar ze wszystkimi komponentami Java Beans dla raportów w nim zawartych. Następnie dodajesz plik jar do ścieżki klasy w iReporcie. Wprowadzamy klasę dostawców, jak pokazano na rysunku 3.5 w powyższym linku. Minęło trochę czasu, ale myślę, że tak to działało. –

+0

@Jacob Schoen Cześć, zastanawiam się, czy mogę przekazać parametr do Java bean? Następnie możemy przetworzyć pewną logikę biznesową, dzięki. – coastline

Powiązane problemy