Newsgroup: it.comp.java
Titolo: Miglior strumento di reportistica

Salve a tutti.
Per una web application ho bisogno di generare dei report in formato
pdf.
In passato (più o meno un anno fa) intrapresi la strada JasperReport
(+iReport) che usa iText allo scopo.
Dovetti abbandonarla perchè (all'epoca) la filosofia di JasperReport
era quella di fare stampe di report intesi come dati iterati e non
tanto di documenti complessi.
In altre parole la "pagina" jaspereport aveva una dimensione massima
che non potevi eccedere pena OutOfMemoryError anche sfruttando il
"trucco" dei subreport
Sapete dirmi se questa cosa è stata "corretta" nelle ultime release o
devo andare per forza a lavorare con le classi di iText direttamente?
All'epoca, avendo abbandonato JasperReport, usai Velocity per generare
dei documenti dinamici in html.
Volendo continuare a seguire questa strada, esiste qualcosa di
collaudato per la conversione in pdf?
Grazie.

Ciao, per la conversione ti posso consigliare Apache FOP o piu in
generale XSL:FO.
Pero' devo anche dire di non aver mai riscontrato cio' che dici di
JasperReport, pur avendo generato documenti di una certa complessita'.
Io ti consiglio di riprovare perche' se riesci a superare la
difficolta' iniziale dovuta alla mancanza di buona documentazione, si
rivela un ottimo strumento. Se vuoi andare sul commerciale c'e'
crystal reports ma non l'ho mai usato.
Ciao
Co



Ti ringrazio per la risposta.
Di FOP avevo sentito parlare ma, non è un po' datato? Tra l'altro vedo
che è ancora in versione 0.x
Per quanto riguarda JasperReport, ti metto il link della segnalazione
che feci all'epoca e relativamente alla quale i guru mi diedero
ragione (ora ho inserito un post per sapere se ci sono novità).
http://www.jasperforge.org/index.php?option=com_joomlaboard&Itemid=215&func=view&id=15840&catid=9

On 5 Dic, 13:01, 
pion...@inwind.it
 wrote:

Potresti utilizzare direttamente iText: prima crei un documento pdf,
con la struttura che desideri e complesso quanto vuoi, con tutti i
campi di testo e i checkbox "vuoti". Dopodiché li riempi utilizzando
il metodo setField della classe AcroFields: in questo modo, in futuro
potrai cambiare anche la struttura base del pdf senza dover cambiare
una riga di codice (basta non cambiare i nomi degli AcroFields).
Questo metodo è flessibile e veloce (sempre che ti servano solo
documenti pdf).


Sembra un'idea interessante.
Ma per creare il template devo comprare obbligatoriamente Acrobat? Ed
i nomi ai campi come glieli dò?
Inoltre, se il campo è una collection, ossia devo iterare qualcosa,
funziona lo stesso?

 funziona lo stesso?
Non capisco... il campo una collection? Con iText riempi i campi
passando semplici stringhe: quindi se hai una lista o un set prelevi i
valori che vuoi con un bel ciclo for e li inserisci nei vari campi.
Mi ero dimenticato: questo approccio è sicuramente più rapido da
mettere in atto rispetto alla creazione dinamica di un pdf, però tieni
presente che il punto di partenza è sempre un pdf statico. Mi spiego
meglio: se  in un campo può mostrare n caratteri e tu gliene passi di
più, quelli in eccedenza vanno persi...


Appunto...parlavo di collection nel senso di insieme dinamico di campi
da iterare a runtime.
L'avevo chiesto appunto perchè temevo che fosse statico.


non ho ben presente cosa è un "insieme dinamico di campi"
ma se è una serie di n *righe* da stampare con iText si fa
utilizzando la PdfPTable.
 

 utilizzando la PdfPTable.
http://www.datatime.eu/DataTimeUniversal.htm
-P


Se hai usato velocity amerai UJAC per realizzare i PDF. Provalo e'
favoloso!
permette di realizzare documenti PDF basandoti su template (simile a
velocity) con un po' meno espressivita' di FOP ma con performance
nettamente superiori e non parlo solo di veolocita' di esecuzione ma
SOPRATTUTTO di consumo di memoria (FOP fa veramente schifo da questo
punto di vista).
Dagli un'occhiata, io al lavoro l'ho usato su due progetti  e mi e'
sembrato fantastico provenendo da una precedente traumatica esperienza
con FOP