Home Page Home Page Articoli Rivoluzione nel campo dei Reports con i SQL Reporting Services

Rivoluzione nel campo dei Reports con i SQL Reporting Services

Finalmente Microsoft ci mette a disposizione uno straordinario tool per la produzione di Report perfettamente integrato con l'architettura .NET. Fino ad ora siamo sempre stati abituati ad utilizzare il buono seppur limitato Crystal Report. Vediamo cosa cambia da ora in poi.
Autore: David De Giacomi Livello:
I Reports
Fino 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 limiti
Da 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 Services
Una 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 Valutazione
Il costo del kit è di circa 9.65$

Requisiti minimi, versioni e licenze
SQL Reporting Services può girare sui seguenti sistemi operativi:

- Windows 2003 (tutte tranne la Web Edition)
- Windows 2000 con SP4
- Windows XP Pro con SP1

e 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 Services
Questo prodotto è composto da quattro parti fondamentali:

Report Server
E' 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 in esecuzione nel Task Manager



Report Server Database
Per 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
Il Database d'appoggio creato in SQL Server



Report Designer
Forse 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
Il report Designer dentro VS.NET 2003



Report Manager
Il 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 Forms

Reports in linguaggio XML
I 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
La struttura interna in XML di un Report .rdl


Drilldown
Con 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
I dati raggruppati per anni e categoria


mentre con il drilldown potete vedere i vari subtotali:

Una visione più dettagliata
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'esportazione
E' 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
- XML

I formati d'esportazione
I 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.


Zooming
E' 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
Le opzioni per lo Zoom


ed ecco il risultato:

Zoom al 10% e al 50% dello stesso Report
Zoom al 10% e al 50% dello stesso Report



Sottoscrizioni/Subscriptions di Reports
Le 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
Reporting Services può inviare Report via mail


Inoltre come detto si può schedulare l'invio del report:

Schedulazione della produzione 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 ruoli presenti sul Server


I Tasks abilitati per il ruolo
I Tasks abilitati per il ruolo "Content Manager"



Conclusioni
Eccoci 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 :)
Voto medio articolo: 4.6 Numero Voti: 16
David De Giacomi

David De Giacomi

MVP Program Logo Approda al mondo dell'informatica nell' Aprile del 1994. Un amico gli fa conoscere il Quick Basic del DOS. E' cosi che inizia la sua attività di sviluppatore. Prosegue il suo percorso con altri linguaggi (Visual Basic, Pascal, Java, ANSI C), fino ad arrivare a .NET. Per un certo periodo affianca all'attività ... Profilo completo

Articoli collegati

Garantire l'univocità di una colonna ammettendo valori NULL multipli
Chi sviluppa in ambito professionale o per puro diletto prima o poi si troverà ad affrontare tematiche nuove ed avvincenti. In questo articolo cercherò di illustrare tre tecniche con i relativi pregi e difetti per permettere con SQL Server di garantire l'univocità di una colonna senza alcuna limitazione sui valori NULL
Autore: Lorenzo Benaglia | Difficoltà:
Integrare Crystal Reports con una Windows Form
Ecco come sfruttare in modo semplice e rapido le funzionalità offerte dal tool di reportistica Crystal Reports di Business Objects all'interno di una Windows Form .NET, dalla crazione del Report al Binding dei dati.
Autore: Matteo Raumer | Difficoltà: | Commenti: 2
Il Logging con Integration Services 2005
Perchè si è bloccata la mia applicazione ? Che errori si sono verificati ? Perchè il flusso d'esecuzione non procede nel modo corretto ? Cerchiamo di capire come possono esserci utili le funzionalità di logging offerte da SQL Server e gli Integration Services per rendere più affidabili e consistenti le nostre applicazioni.
Autore: Alessandro Alpi | Difficoltà: | Commenti: 3
Utilizzare i SQL Server Agent Proxies con i Package SSIS
Chi utilizza frequentemente i SSIS Packages e accede a risorse esterne a SQL Server non può fare a meno di conoscere ed utilizzare i Proxy Account (o SQL Server Agent Proxies). Vediamo che cosa sono e come si utilizzano in modo proficuo.
Autore: Alessandro Alpi | Difficoltà: | Commenti: 4
SQL Server 2005 - La Import/Export utility
Chi lavora sui Database si ritrova quasi quotidianamente a dover importare o esportare dati. SQL Server 2005 agevola notevolmente il compito tramite l'Import/Export Utility (ex DTS Import/Export di SQL 2000). Vediamo come funziona.
Autore: Alessandro Alpi | Difficoltà: | Commenti: 14
Visual Studio 2005 Team System for Database Professionals
Scopriamo questo nuovo e potente Tool della famiglia Visual Studio 2005 Team System per creare, sviluppare, testare e gestire con più facilità e flessibilità i database di SQL Server.
Autore: Marco Caruso | Difficoltà:
Parallelismo tra SSIS e DTS, due prodotti a confronto
In questo articolo un'analisi sulle novità dei SQL Server 2005 Integration Services rispetto ai DTS di SQL Server 2000.
Autore: Alessandro Alpi | Difficoltà: | Commenti: 2
Overview dei SQL Server Integration Services (SSIS)
Scopriamo i nuovi Sql Server Integration Services presenti in SQL Server 2005 che sostituisco i DTS aggiungendo delle nuove funzionalità davvero interessanti
Autore: Alessandro Alpi | Difficoltà: | Commenti: 6 | Voto:
Leggere un file XML con SQL Server 2005
Scopriamo in questo articolo alcune potenzialità offerte dal nuovo database SQL 2005, tra cui il nuovo data type XML, e le Stored Procedures per importare e gestire all'interno del database file testuali in formato XML.
Autore: Lorenzo Benaglia | Difficoltà: | Commenti: 5
ExcelDataSetLib, una libreria .NET per esportare dati in formato Excel
In questo articolo verrà dimostrato come derivare la classe DataSet e integrare funzionalità per esportare in formato Excel XLS, XML o CSV i dati provenienti da un base dati qualsiasi.
Autore: David De Giacomi | Difficoltà: | Commenti: 3 | Voto:
Microsoft Application Blocks Data Access
Quante volte vi è capitato di riscrivere decine di volte lo stesso pezzo di codice all'interno di un progetto ? Scopriamo in questo articolo l'utilità dei Microsoft Application Blocks che vi permettono di ottimizzare il vostro codice evitando ripetizioni e vi facilitano la lettura.
Autore: Marco Caruso | Difficoltà:
Comprimere e decomprimere files ZIP con .NET e #ZipLib
Visualizzare il contenuto di un file Zip da una applicazione vi sembra una Mission Impossibile? Oppure la vostra azienda ha fatto un mutuo per pagare il componente che vi aiuta nel lavoro? Ecco un articolo che parla della libreria sharpZipLib, libreria Open Source per la gestione dei formati compressi.
Autore: Giovanni Ferron | Difficoltà: | Commenti: 7
Scopriamo cosa sono gli Office XP PIA
Vediamo in quest'articolo una dettagliata introduzione dei PIA gli assemblies che permettono ad un'applicazione .NET di interagire e di dialogare con i prodotti della suite Microsoft Office XP.
Autore: David De Giacomi | Difficoltà: | Commenti: 6
Migliorare la qualità dei grafici nei Crystal Reports
In questo breve articolo vedremo come aumentare la qualità dei grafici prodotti da Crystal Reports durante il rendering tramite Web con ASP.NET e all'interno di applicazioni WinForms.
Autore: David De Giacomi | Difficoltà:
Costruire Report con ASP.NET e Crystal Reports
Vedremo in questo semplice Tutorial le istruzioni base che ci permetteranno di costruire un report avanzato usando ASP.NET e l'oggetto CrystalReportViewer integrato in questa versione di Visual Studio .NET.
Autore: David De Giacomi | Difficoltà: | Commenti: 14
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5