Domanda

Sto cercando di incorporare JasperReports in un'app Web esistente per i rapporti. La webapp si trova in cima a un database esistente che è antico e complesso, e in realtà non adatto agli autori di report da utilizzare per scrivere report direttamente.

Quello che voglio guardare è scrivere una sorta di wrapper attorno al nostro livello di accesso ai dati esistente ( scritto per rendere la nostra vita più facile parlare con il suddetto db antico e complesso ). Qualcuno ha esperienza di scrittura di origini dati personalizzate per JasperResports o di fare qualcosa del genere?

Aggiornamento

Suppongo che probabilmente non ero chiaro nella mia domanda, probabilmente perché i miei requisiti non sono chiari. Voglio fornire in modo che gli utenti finali possano utilizzare qualcosa come iReport per creare report sul database e quindi utilizzare JasperReportServer per la pianificazione / visualizzazione dei report. Tuttavia, il database è davvero, davvero brutto e non è mai stato progettato per essere utilizzato in questo modo. Abbiamo intorno un livello di accesso che la webapp usa per parlarci. Voglio tenere del tutto i miei utenti finali lontani dal DB e l'idea di un'origine dati personalizzata che utilizzava il livello di accesso sembrava una buona opzione. Tuttavia, ho trovato pochissima documentazione su come farlo. Forse è solo molto più facile di quello che penso, e sto solo cercando di rendere una cosa morta morta troppo complicata.

Aggiornamento

Grazie per le risposte. Non penso che il mio problema sia stato risolto, ma penso che le risposte abbiano contribuito a informare la fase dei requisiti.

È stato utile?

Soluzione

Ogni modello JasperReports può avere due diverse origini dati. Uno lo sta collegando direttamente a un database usando alcuni driver jdbc o, nel tuo caso, fornendo una raccolta di java bean (POJO), di solito l'elenco.

Il modello JasperReports è simile alla definizione di un metodo. Ha un nome, ovvero un oggetto JR compilato e parametri (origine dati e un elenco di parametri di input di alcuni dei tipi Java più popolari).

Il mio consiglio è di usare lo strumento iReport. Apri alcuni esempi forniti con il bundle JasperReports, analizzalo e modificalo. Non è così complicato.

Aggiorna

Consentire ai clienti di creare modelli JasperReports, compilare e aggiungere al percorso di classe significa che dovrai aprire troppo il tuo sistema. Di solito i clienti forniscono la descrizione di un rapporto desiderato e gli sviluppatori creano l'origine dati e progettano il modello. JasperReports può avere parametri. Se questi parametri sono esposti tramite l'interfaccia utente, gli utenti possono modificare il comportamento dei report in fase di esecuzione.

Se è davvero necessario consentire una maggiore flessibilità, utilizzare l'API fornita da JasperReports per i modelli di creazione. Potrei immaginare alcuni semplici DLS per utenti avanzati per comunicare con il tuo sistema creando report al volo.

Altri suggerimenti

I report Jasper ti consentono di utilizzare un " JavaBean " fonte di dati. È possibile caricare i dati in qualsiasi struttura Java Bean e creare rapporti a tale proposito. Funziona bene.

Vedi l'origine dati personalizzata " sezione qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top