Reportistica - quali sono i metodi migliori

sabato 14 giugno 2008 - 09.48

lolic Profilo | Newbie

Ciao a tutti,
scrivo perchè vorrei utilizzare questo thread per raccogliere tutti i sistemi di reportistica maggiormente utilizzati e attualmente a disposizione. Per ciascuno possibilmente indicare anche in quali casi risulta conveniente, privilegiando uno piuttosto che l'altro.
Converrete con me che la reportistica svolge un ruolo importante nelle applicazioni e sopratutto risulta essenziale riuscire a rispondere pienamente alle richieste degli utenti.

Attualmente ho una minima esperienza con Crystal Report e meno ancora con Reporting Services. Nelle applicazioni che sto sviluppando sfrutto Word - Excel come mezzo di reportistica. Per ovviare il problema della versione di office, installata nel pc in uso dall'utente, uso il late binding piuttosto che l'early binding, questo però mi costringe a sviluppare una mia specifica libreria e ancor peggio le prestazioni non sono delle migliori.

Ma perchè ho scelto questa strada? Nel momento in cui la reportistica non consiste semplicemente in un tabulato di dati estratti dal db, ma piuttosto in una documeto suddiviso in varie parti, dove alcune delle quali composte da campi da compilare e altre invece da tabelle, risulta macchinoso l'utilizzo ad esempio di Crystal Report (quì posso anche sbagliarmi) dove la logica di reportistica a mio parere è troppo legata al concetto di tabelle. A mio avviso utilizzare un documento Word come template e una serie di segnalibri che indicano i punti compilabili risulta molto più pratico ma purtroppo ben più lento.

Chiedo dunque se esistono delle strade alternative, anche su come generare i documenti .doc. Credo ad esempio che un conto sia "comandare word" e indicargli dove mettere i dati e ben diverso invece avere una libreria che generi direttamente un file.
Esisto ad esempio apposite librerie open o non a riguardo?

Tornando invece a Crystal Report o Reporting Services.Dunque quando è meglio preferirli?

freeteo Profilo | Guru

ciao,
scusa del ritardo ma cmq ci tengo a darti una risposta almeno per quanto ne posso sapere io.

Ci sono vari tool di reportistica, io ne conosco 4:
- Jasper Report
- Active Reports
- Crystal Report
- Sql Reporting Services

I primi 2 solo per sentito dire, so che sono degli ottimi tool, ma non posso darti delle specifiche a riguardo perchè non li ho mai utilizzati ne testati.
Per gli ultimi 2 invece posso darti qualche giudizio:
Crystal Report:
-----------------------
+ Assolutamente completo, ricco di funzionalità classiche come tabelle, immagini
+ campi sommatoria indipendenti dal flusso di dati
+ gestisce i css da dare agli elementi, il render (anche se 1po scarsetto) di contenuti Html
+ formule e parametri modificabili da codice
+ personalizzazione di alcuni elementi (non tutti) via codice
+ tanti formati di esportazione supportati

- dato il suo numero di librerie caricate al primo avvio risulta 1po più lento
- alcuni eventi (come la stampa dal viewer) non sono intercettabili
- per utilizzarlo su un server asp.net con prestazioni ottimali serve una licenza aggiuntiva, se non ti interessa avere qualche rallentamento ti basta quello di visual studio
- puoi agganciarti ai tuoi oggetti solo se le classi sono nello stesso progetto, altrimenti devi passare attraverso un file xml, o copiare la classe, fare il report e poi cancellare la classe



Sql Reporting
-----------------------
+ gestisce flussi verticali di liste separate più facilmente
+ si aggancia più facilmente ad oggetti, quindi se lavori Object-Oriented con tue Classi e collezioni ti trovi meglio
+ runtime più leggero, formato da meno librerie (le principali sono 4)

- devi usare solo vb.net per scrivere le formule, quindi hai accesso al Framework e quindi tutti i suoi benefici in termini di classi :D


Entrambi
-----------------------
+ hanno la possibilità di caricare i report da file, cosa che ti può tornare utile per gestire diverse personalizzazioni a clienti ad esempio oltre che per gestire aggiornamenti "slegati" dall'applicazione intera
+ il runtime è inseribile nel progetto di setup, o in ClickOnce etc...sono quindi tranquillamente integrati nella tua applicazione, senza problemi di setup customizzato etc...diciamo che riesci a fare tutto da visual studio con qualche flag che li integra per li deploy

- devi passare la stessa struttura dati con cui li hai costruiti a design time (la struttura non i dati, quindi i tipi di campi etc...)
- non puoi modificare la struttura a runtime
- non hai intellisense nell'editor delle formule che scrivi



+ = aspetto positivo
- = aspetto negativo


>Word - Excel come mezzo di reportistica
qui non ci siamo mica tanto , quelli sono formati di documenti non sono da utilizzare per la reportistica, ovvero il mettere insieme molti dati, incrociarli, farci dei calcoli etc...Excel si avvicina abbastanza, ma è cmq ottimizzato per avere interfaccia utente, quindi non come motore a se stante.


>campi da compilare e altre invece da tabelle, risulta macchinoso l'utilizzo ad esempio di
>Crystal Report (quì posso anche sbagliarmi) dove la logica di >reportistica a mio parere è
>troppo legata al concetto di tabelle. A mio avviso utilizzare un documento Word come
>template e una serie di segnalibri >che indicano i punti compilabili risulta
>molto più pratico ma purtroppo ben più lento.
diciamo che puoi sempre fare un report e passare una sola riga,impaginato bene con gli spazi classici.
L'unica cosa è appunto stare attento al fatto che i margini della stampante possono influire sulle posizioni, ma riesci a fare tutto tranquillamente anche con tool di reportistica
Se vuoi qualcosa di più integrato in Office allora si, devi usare i campi unione, o sorgenti di dati esterne, oppure pensare di fare pacchetti aggiuntivi in .net per office, che si integrano perfettamente e che ti fanno le query dove vuoi, con i parametri dove vuoi etc...



>Chiedo dunque se esistono delle strade alternative, anche su come generare i documenti .doc.
>Credo ad esempio che un conto sia "comandare word" e >indicargli dove mettere i dati e
>ben diverso invece avere una libreria che generi direttamente un file.
come ti dicevo sorpra, devi usare i progetti appositi che hai con visual studio, l'integrazione è ottimale.
Non sono esperto, io partirei da qualche link ufficiale di approfondimento tipo:
http://msdn.microsoft.com/en-us/library/3295w01c(VS.80).aspx


Ti ho dato alcuni miei punti di vista, fai qualche analisi anche tu e poi vedi cosa ti conviene...io mi trovo benissimo con i Report, perchè mi slego da Office, (alcuni clienti possono avere OpenOffice ad esempio) e alle varie versioni di office.
In più fatto il report, il codice per integrarlo nell'applicazione è semplice, e non dipendo da nessun applicativo, service pack etc...diciamo che poi è anche vero che i clienti non mi chiedono l'integrazione con Office, quindi è ovvio che non mi ci sono mai cimentato a fondo
Vedi tu, dipende sempre da cosa devi fare.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5