Sql Server Reporting Services

Architettura

Sql Server Reporting Services e’ una piattaforma che supporta la gestione del ciclo di vita dei report,ovvero :

Authoring 

Creazione dei report con Report Designer o tool di terze parti che fanno uso di RDL(Report Definition Language) uno standard basato su Xml.

Caratteristiche

Costruzioni di grafici,matrici,tabelle pivot.

Ordinare,filtrare,raggruppare i dati.

Inserire codice .net in tutto il contesto del report.

Supporta le seguenti sorgenti dati :OleDb,Odbc,Sql nativo,Oracle nativo.

 

Management

L’amministrazione e’ possibile effettuarla con Report Manager,utilizzando direttamente il webservices oppure con un’interfaccia win32.

I report,le cartelle e le risorse collegate sono pubblicate e gestite da un WebServices(ReportService.asmx) contenuto nella virtual ReportServer.

Delivery

Permette di fornire report in vari formati agli utenti tramite E-mail o file Sharing.

Nel primo caso e’ necessario che sia presente un smtp server.

La distribuzione avviene tramite sottoscrizione(subscription).

 

Il delivery(distribuzione) puo’ essere On-Demand(su Richiesta) o Event.

Requisiti

Client

Il Report Designer necessita  dell’installazione di Vs.Net 2003,e quindi del FrameWork 1.1

Web Server

Windows 2003,Windows Xp Sp1,Windows 2000 prof Sp4.

FrameWork 1.1. ,se non c’è lo installa il setup di reporting.

Sql server 2000 sp3a (se installazione a 2 livelli)

 

Edizioni

Standard

Viene installato tutto il software su una macchina,non c’e’ possibilità di scalare.

 

Developer

Solo per ambienti di test e sviluppo.Supporta piu’ s.o. rispetto all’enterprise.

 

Enterprise

Da utilizzare per una distribuzione su WebFarm ovvero è possible installare piu’ istanze di report server database.

Installazione

L’installazione installa tutti i componenti in locale(WebServer),fatta eccezione per il report server database che puo’ essere configurato per essere lanciato su un’istanza remota di Sql(3 livelli).

Viene distribuito come add-on di sql,infatti l’installazione avviene nella stessa cartella.

Utilizza Sql server per memorizzarci i metadati e la definizione dei report,oltre a tutta una serie di informazioni sulla sicurezza,scheduling,delivering.

 

Utilizza la stessa licenza di sql,non puo’ essere utilizzato su msde.

 

2 Livelli

Sui client e’ installato Vs.Net 2003 o tool terze parti che supportino RDL.

Sul Server Web,nel quale deve essere presente il framework 1.1(se non c’e’ lo installa lui) e un’istanza di sql server, verrà installato il Report Manager,Report Server e il Db Report Server(Sql).

 

Figure 3: Typical standard deployment model for small organizations using a single server

3 Livelli

Sui client e’ installato Vs.Net 2003 o tool terze parti che supportino RDL

Sul Server Web e’ installato il Report Manager e il Report Server.

Sul Db Server e’ installato Sql per immagazzinare le definizioni dei report.

 

Figure 4: Typical standard deployment model using a remote instance of SQL Server

 

Cluster

Figure 5: Typical enterprise deployment model using a cluster of report servers and clustered Report Server databases

 

Componenti

Report Designer

Report Manager

Report Server

Report Db Server

 

Termini

Snapshot

Fotografica del report

Caching

Scheduling/Pianificazione

La schedulazione avviene creando un job attravero Sql Agent.

Viene creato uno snapshot ogni tot secondi.

History

Contiene la cronologia degli snapshot creati.

Subscription/Delivering

Sottoscrivo il report ad essere consegnato in un determinato formato(pdf,excel...) in una determianta cartella (share di rete,\\renzif\d$) o via email(smtp server)

Linked Report

Permette di effettuare una copia del report per applicare sicurezza e parametri differenti.

 

Feature

Formati di rendering

Html,Pdf,Immagine,Excel,xml....

 

RS vs CR

Reporting Services

  1. Rs e’ un’architettura service-oriented invece che object-oriented,questo fa si che il report sia accessibile attraverso il web serbvice o l’url.
  2. L’architettura Rs e’ open,espone API che permettono di estendere le funzionalità come sicurezza e connessione.
  3. Supporta un’ampia gamma di formati di esportazione.
  4. Delivery dei report sottoscritti.
  5. Fa uso di un linguaggio standard : report definition language
  6. Integrazione col FrameWork
  7. Architettura Web quindi nessun client da deployare.
  8. Costo gratuito se utilizzata la licenza di Sql server.

 

Crystal Report

Punti di forza

Piattaforma matura,arrivati alla decima versione.

Connettività con prodotti ERP/CRM piu’ popolari.

 

Punti di debolezza

L’estensione non e’ cosi semplice

Formato proprietario dei report

Bugs/Errori

StarDateTime

Impostare il regional setting su english.

Credential used to run...

Impostare nelle proprietà del datasource utilizzato dal report,”Credential stored securely...” impostando un utente e password corretti.

SubScription cannot be crated...

Sembra non funzionare con i report che hanno parametri.

 

Deploy

Da riga di comando

Il deploy di un report sul report server puo’ essere fatto anche da riga di comando utilizzando l’RS utility e lo script opportunatamente modificato nel percorso dei report da deployare:

C:\Program Files\Microsoft SQL Server\MSSQL\ReportingServices\Samples\Scripts\PublishSampleReports.rss

 

/*Percorso del file rss*/

cd C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\Samples\Scripts

 

/*Assicurarsi che il file rss contenga il percorso dei report*/

 

/*lanciare da cmd*/

rs -i PublishSampleReports.rss -s http://localhost/reportserver -v parentFolder="Sample Reports"

How To

Utilizzare Sp / Package

Fare new dataset,impostare command type=stored procedure.Inserire il nome della procedure o del package nella forma “Pack.Procedure”.

 

Utilizzare query dinamiche

E’ possibile immettere direttamente all’interno della query,condizioni.

 

=“select * from employee” &

iif(Parameters!name.Value=0,””,” where name=@parametro”)

Creare un parametro

Impostare sotto criteria del dataset @parametro.

Sotto Report Parameters sara’ immediatamente visibile.

Campo calcolato

Tasto destro sul dataset(a sinistra) e fare Add Field.

Formattazione condizionale di un campo

Nella propertie specifica(es. colore) della Textbox,inserire sotto expression:

=IIF(condizione,”Blue”,”Black”)

Visualizzare lo user autenticato

user!userid

Nascondere i campi in base allo user autenticato

Impostare sulla property visibility della textbox la condizione:

=IIF(user!userid=”spin\renzif”,true,false)

Chiamare un Assembly statico o WebServices

Sul report properties, tab references, aggiungere la dll .net.

Utilizzare la seguente sintassi : Assembly.Classe.Metodo(valore) ;

 

Vedi ‘using custom assemblies with reports su microsoft’

Upload report

E’ possibile deployare un report sotto Sql server utillizzando Report Designer o il tasto Upload File del Report Manager.

Inglobare report in una pagina html

HtmlFragment=true(da verificare)

 

Lanciare un report da pagina

Visualizza il report RptOrder con zoom 50%,con toolbar e formato di esportazione Html

 

http://localhost/reportserver?/prjReporting/rptOrder&rs:Command=Render&rc:zoom=50&rc:parameters=true&rc:toolbar=true&rc:docmap=false&rs:Format=HTML4.0

 

N.B. per la stringa dei parametri fai riferimento all’applicazione di esempio RsExplorer.

 

Passare un parametro via url

Aggiungere all’url &parametro=valore  à e’ case sensitive

Ceccare nel report manager richiesta all’utente (prompt user)

Accesso Anonimo(Pubblico)

  1. Settare l’accesso anonimo con account Administrato sotto IIS sulla virtual ReportServer.
  2. Settare sulla Home l’account Administrator.

 

Accesso Windows

  1. Settare windows authentication su IIS.
  2. Settarer su Home tutti gli account che hanno accesso.

 

Lanciare un report da Windows Form

N.B. fai riferimento all’applicazione di esempio RsExplorer.

 

In sostanza bisogna aggiungere sulla windows form il componente Com Microsoft Web Browser raggiungibile nella cartella C:\WINNT\system32\shdocvw.dll.