I ReportsFino a quando un programmatore lavora per conto suo a casa non ha l'esigenza di produrre Reports professionali, anche perchè solo utilizzando Access si possono ottenere gradevoli risultati impiegando quantità ridotte di tempo.
Quando si entra nel mondo del lavoro e si va a lavorare per aziende di un certa dimensione nasce spontanea la necessità di avere degli strumenti per produrre dei Reports affidabili, professionali e quindi di alta qualità.
Quasi tutte le aziende, non solo IT, hanno bisogno di Reports. Da poco tempo lavoro in un'azienda del settore grande distribuzione e mi accorgo che pure lì sono necessari pacchi di reports, dalle fatture per esempio oppure ai budget, ai margini, agli incassi di vendita e così via.
Un'enorme quantità di dati deve essere raccolta, analizzata e rappresentata in una forma comprensibile non solo a chi si occupa dell'IT ma anche alla dirigenza dell'azienda che poi deve prendere delle decisioni.
Crystal Reports e i suoi limitiDa diversi anni opera in questo campo una azienda molto famosa che produce un prodotto chiamato
Crystal Reports. Questo prodotto è stato inserito nella suite di Microsoft per lo sviluppo,
Visual Studio .NET. In effetti a prima vista è stata un'ottima mossa, utilizzandolo però ci si è resi conto che c'erano molti limiti e si doveva passare ad acquistare una versione di Crystal più evoluta per fare qualcosa di serio.
Crystal è comunque un ottimo prodotto perchè costruisce Report all'interno di applicazioni WinForms, WebForms e addirittura esporta dati tramite Web Services. Già tempo addietro scrissi un articolo che mostrava alcune delle sue potenzialità:
http://www.dotnethell.it/articles/article.aspx?ArticleID=87 ">Costruire Report con ASP.NET e Crystal Reports
Alcuni dei suoi limiti sono per esempio la non completa integrazione con .NET, infatti dal punto di vista
Globalizzazione/Internazionalizzazione personalmente ho trovato diverse difficoltà.
Inoltre anche banalità come esportazione dei report in PDF richiedono un percorso abbastanza tortuoso. Certo una volta fatto poi è una passeggiata. Vedrete fra poco però come cambia lo scenario con i
SQL Reporting Services.
Dove posso scaricare i SQL Reporting ServicesUna versione dimostrativa
trial è disponibile per lo scaricamento qui:
http://www.microsoft.com/downloads/details.aspx?FamilyId=BA517C01-2E2F-4BC7-84AF-149B7637F807&displaylang=en ">Download SQL Reporting Services Kit di Valutazione
E' disponibile in diverse lingue
compreso l'italiano e occupa circa
137 mega.
Per chi fosse pigro può anche ordinare il CD da qui che comprende una versione 120 giorni di SQL Server 2000 Enterprise e dei SQL Reporting Services:
SQL Server 2000 Kit di ValutazioneIl costo del kit è di circa
9.65$Requisiti minimi, versioni e licenzeSQL Reporting Services può girare sui seguenti sistemi operativi:
- Windows 2003 (tutte tranne la Web Edition)
- Windows 2000 con
SP4- Windows XP Pro con
SP1e richiede inoltre la presenza di:
-
SQL Server 2000 con
SP3 (Standard, Enterprise o Developer)-Una buona quantità di RAM (256/512)
-Una buona dose di spazio su disco (circa 300 mega per tutto)
-
Visual Studio .NET 2003-
Internet Explorer 6.0 (ma questo mi sembra scontato)
Esistono due versioni di questo prodotto,
Standard e
Enterprise.
A parte qualche piccola features in più l'Enterprise si differenzia dalla standard per la possibilità di supportare configurazioni in Web Farm, supporto a
SMP (Multiple Symmetric Multiprocessing) e può superare il limite di utilizzo di
2 giga di RAM.
Dal punto di vista
Licenze i
SQL Reporting Services fanno parte di SQL Server quindi se avete già una licenza di SQL Server siete abilitati ad installarlo sullo stesso server senza problemi, diversamente dovrete richiedere una nuova licenza.
Architettura dei SQL Reporting ServicesQuesto prodotto è composto da quattro parti fondamentali:
Report ServerE' un Web Service che offre/espone diverse interfacce che possono utilizzare le applicazioni Client per la produzione dei Reports. Diciamo che è il componente principale perchè gestisce molte operazioni fondamentali, le richieste dai client, legge le definizioni dei report, raccoglie i dati, li accoppia e produce il Report. Il Report Server è composto da vari componenti che danno flessibilità al prodotto e al programmatore. Infatti il programmatore può poi personalizzarlo in base alle sue esigenze.
Report Server in esecuzione nel Task Manager
Report Server DatabasePer offrire tutte queste nuove features e per aumentare le prestazioni
SQL Reporting Services ha bisogno di appoggiarsi a un Database suo personale dove inserire informazioni relative ai Reports, ai metadati, Stored Procedures, caching dei Reports, schedulazione dei Reports e così via. Durante l'installazione viene automaticamente creato.
Il Database d'appoggio creato in SQL Server
Report DesignerForse la parte più interessante per noi è il
Report Designer, il tool integrato in
Visual Studio .NET che ci permette di disegnare i Report e collegarli alle nostre basi dati (
.NET DataSets).
Molto intuitivo è composto da tre linguette (Tabs),
Data appunto,
Layout e
Preview ecco una screenshot:
Il report Designer dentro VS.NET 2003
Report ManagerIl collante forse di tutti questi componenti è infatti il
Report Manager, una Web Application per la gestione dei Reports, della produzione e schedulazione degli stessi, della pubblicazione, visualizzazione, della sicurezza, ecc.
La home page si presenta come un portale che raccoglie varie cartelle che contengono al loro interno altri Reports. Potete creare nuove cartelle, oppure Uploadare Reports direttamente da lì.
Vediamo ora alcune
novità eclatanti che mi hanno particolarmente colpito.
N.B. Vi ricordo che questo strumento attualmente può produrre Report visibili solo via Web o in uno dei formati d'esportazione disponibili. Non esiste un Windows Control come con Crystal che permette di vedere il Report dentro una applicazione WinForms ma si può risolvere egregiamente leggendo questo Tip:
Come visualizzare delle pagine Web in una Windows FormsReports in linguaggio XMLI Reports o meglio, le definizioni dei Reports, sono
file con estensione .rdl (Report Definition Language). Il bello di tutto ciò è che internamente è tutto codice
XML quindi non è necessario avere
Visual Studio .NET per creare dei Reports ma li può creare una qualunque applicazione! Inoltre è possibile semplicemente editare il file
.rdl con il Blocco Note di Windows cambiare il testo ad alcune etichette, e riuploadare il file e automaticamente avremo il nostro Report aggiornato. (Per chi ancora non conosce bene come è strutturato internamente un Report è consigliabile utilizzare il
Report Designer da Visual Studio .NET)
La struttura interna in XML di un Report .rdl
DrilldownCon il drilldown potete letteralmente "navigare in profondità" dentro il vostro Report. Infatti dinamicamente con dei + e dei - come in una sorta di TreeView potete aprire i dati raggruppati vedendo i dettagli, non solo dall'alto in basso ma anche da sinistra a destra. Tutto ciò è reso possibile da Internet Explorer in accoppiata con DHTML, vedete qui sotto due screenshot:
I dati raggruppati per anni e categoria
mentre con il drilldown potete vedere i vari subtotali:
Una visione più dettagliata
Automaticamente dopo il click sul + o il - viene effettuato un postback sul Server, vengono recuperati i nuovi dati necessari e renderizzato nuovamente il Report. Cool vero ? :)
Formati d'esportazioneE' possibile esportare semplicemente (a differenza di Crystal) qualsiasi Report, è sufficiente scegliere uno dei tanti formati a disposizione:
- HTML- Excel- Archivio Web (.mht) Per chi non sa cos'è il
Formato .mht- PDF- Immagine TIFF- CSV- XMLI formati d'esportazione
Come vedete è tutto abbastanza semplice e per operazioni comuni non è neanche richiesta scrittura di codice visto che è l'architettura dei Reporting Services che ci mette già tutto a disposizione.
Ma non è tutto, grazie alle interfacce di cui parlavamo sopra è possibile implementare delle procedure per la produzione dei Report in formati personalizzati diversi da quelli sopra elencati. Grazie alle
Rendering Extensions questo è possibile. Informazioni riguardanti questo argomento le trovate nell'
SDK che viene installato con il prodotto.
ZoomingE' possibile tramite Internet Explorer
cambiare la percentuale di Zoom del Report come succedeva di solito con Adobe Acrobat Reader, la differenza è che questa è una semplice pagina Web e il tutto avviene in tempo reale senza dover fare refresh o postback al server.
C'è anche un'opzione di adattamento del Report alle dimensioni della finestra del Browser:
Le opzioni per lo Zoom
ed ecco il risultato:
Zoom al 10% e al 50% dello stesso Report
Sottoscrizioni/Subscriptions di ReportsLe novità non finiscono, ritengo che questa però dia un vero valore aggiunto perchè è un anello di congiunzione fra la realtà IT che si intende di informatica e la realtà aziendale/dirigenziale che ne sa poco o niente. Grazie a questa funzionalità infatti tramite l'interfaccia Web è possibile
sottoscrivere uno o più report e riceverli nel formato prescelto alla data prestabilita nella propria casella di posta elettronica oppure su una cartella di rete. L'interfaccia è molto friendly e quindi accessibile anche da amministratori delegati e dirigenti vari.
Reporting Services può inviare Report via mail
Inoltre come detto si può
schedulare l'invio del report:
Schedulazione della produzione del Report
Security, Gruppi e Gestione dei ruoli.NET è stato progettato sin dall'inizio per offrire a tutti un elevato livello di sicurezza (più che in passato). Chi ha già sviluppato e progettato applicazioni ASP.NET di un certo calibro può confermarlo. Ma anche solo parlando di
Memory Management e
CAS (Code Access Security) possiamo vedere gli sforzi fatti in questa direzione da Microsoft.
I Reporting Services infatti sono stati costruiti basandosi sul .NET Framework e traendo beneficio da tutte le features offerte, a partire appunto dalla sicurezza; infatti proprio dal
Report Manager è possibile creare dei ruoli e assegnare dei diritti a vari gruppi di utenti.
I ruoli presenti sul Server
I Tasks abilitati per il ruolo "Content Manager"
ConclusioniEccoci in chiusura, abbiamo solo visto una piccolissima parte di questo prodotto ma come avete avuto modo di vedere anche questa volta si tratta di un colpo grosso da parte di
Microsoft. E' stato creato infatti un tool estramemente potente e flessibile grazie alle numerose interfacce disponibili infatti è possibile estendere il server a nostro piacimento anche se non è così semplice come fanno sembrare leggendo l'
SDK. Bisogna dire che già così è molto completo. Inoltre grazie all'ambiente integrato dentro
Visual Studio .NET con pochi click riuscite ad ottenere risultati molto soddisfacenti e accattivanti dal punto di vista grafico e delle funzionalità. Insomma un ottimo prodotto. Consiglio a tutti di scaricarsi la trial e cominciare a provarla, non rimarrete sicuramente delusi. Buon Lavoro :)