Reporting Services http://blogs.ugidotnet.org/nettools/category/Reporting Services.aspx Reporting Services it-IT Davide Mauri Subtext Version 2.6.0.0 Oggi Due Webcast UGISS http://blogs.ugidotnet.org/nettools/archive/2007/01/22/67935.aspx <p>Oggi con UGISS ci saranno due interessanti webcast:</p> <p><strong>11.00 - Reporting Services - Parte 2</strong></p> <p>In questo webcast andremo ad appronfondire le possibilità di sviluppo ed integrazione che i Reporting Services offrono. Verrà mostrato come scrivere ed eseguire codice all'intero dei report, come utilizzare Custom Assembly e inizieremo a vedere come poter integrare i reporting service in applicazioni proprie</p> <p><a title="22 gennaio, ore 11.00 &ndash; Partecipa al Webcast" href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032322316&amp;culture=it-it">Partecipa al Webcast</a></p> <p><strong>15.00 - Integration Services - Parte 1</strong></p> <p>Con la versione 2005 molti strumenti si sono evoluti, ma alcuni hanno subito una vera e proprio rivoluzione. Tra questi troviamo gli Integration Services, i successori dei DTS, ora completamente ridisegnati per superare tutti i limiti che quest'ultimi mostravano e ora completamente integrati con il .NET Framework. In questo webcast vedremo come sfruttare tutte le potenzialità che i Sql Server Integration Services (SSIS) mettono a disposizione per risolvere le problematiche legate all'integrazione di dati ed ai processi di Extract, Transform &amp; Load (ETL). Questo primo webcast permetterà di prendere conoscenza dello strumento, e di iniziare a sviluppare i primi semplici (ma non troppo) package.</p> <p><a title="22 gennaio, ore 11.00 &ndash; Partecipa al Webcast" href="http://msevents.microsoft.com/CUI/Register.aspx?culture=it-IT&amp;EventID=1032322571&amp;CountryCode=IT">Partecipa al Webcast</a></p> <p>VI aspetto!</p><img src="http://blogs.ugidotnet.org/nettools/aggbug/67935.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2007/01/22/67935.aspx Mon, 22 Jan 2007 08:37:00 GMT http://blogs.ugidotnet.org/nettools/archive/2007/01/22/67935.aspx#feedback 1 http://blogs.ugidotnet.org/nettools/comments/commentRss/67935.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/67935.aspx Report Locali e Custom Assembly http://blogs.ugidotnet.org/nettools/archive/2006/10/24/52480.aspx <p>A seguito di un post nel forum Giuseppe mi <a href="http://forum.ugidotnet.org/default.asp?m=62184">segnala</a> un interessante post che descrive nel dettaglio come usare un Custom Assembly all'interno di un report locale del ReportViewer control:</p> <p><a title="http://forum.ugidotnet.org/default.asp?m=62184" href="http://forum.ugidotnet.org/default.asp?m=62184"><a title="http://blogs.msdn.com/mohamed_sharafs_blog/archive/2005/12/20/LocalReportCustomCode.aspx" href="http://blogs.msdn.com/mohamed_sharafs_blog/archive/2005/12/20/LocalReportCustomCode.aspx">http://blogs.msdn.com/mohamed_sharafs_blog/archive/2005/12/20/LocalReportCustomCode.aspx</a></a></p><img src="http://blogs.ugidotnet.org/nettools/aggbug/52480.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2006/10/24/52480.aspx Tue, 24 Oct 2006 21:55:00 GMT http://blogs.ugidotnet.org/nettools/archive/2006/10/24/52480.aspx#feedback http://blogs.ugidotnet.org/nettools/comments/commentRss/52480.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/52480.aspx SVR302 - SQL Server 2005 Reporting Services http://blogs.ugidotnet.org/nettools/archive/2006/04/12/38699.aspx <P>Anche io ho finalmente finito di preparare slide (ma soprattutto demo, taaante demo) per la mia sessione ai <A href="http://www.communitydays.it/events/communitydays2006milano.aspx#agenda_20060413">Community Days di domani</A>.</P> <P>Bene, ora posso finalmente uscire e vedere la luce del sole e raggiungere le community a Segrate per cercare di vedere almeno le ultime sessioni di questa giornata. Ovvimente se qualcuno di voi ha intenzione di fare quattro chiacchere (magari sulla piattaforma SQL 2005) non si faccia problemi, e, come ha gi&#224; detto <A href="http://blogs.ugidotnet.org/lbarbieri/archive/2006/04/12/38689.aspx">Lorenzo</A>, si faccia avanti!</P> <P>Per coloro che sono interessati alla mia sessione, vi anticipo che parlaremo di TUTTO ci&#242; che riguarda lo sviluppo <EM>tramite</EM> i Reporting Services. Un (breve) articolo per preparasi al meglio alla sessione e - in particolare - ad apprezzare i Reporting Services, lo potete trovare nella <A href="http://blogs.ugidotnet.org/rubriki/archive/2006/04/11/38634.aspx">Rubriki appena uscita</A>&nbsp;:-)</P><img src="http://blogs.ugidotnet.org/nettools/aggbug/38699.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2006/04/12/38699.aspx Wed, 12 Apr 2006 12:54:00 GMT http://blogs.ugidotnet.org/nettools/archive/2006/04/12/38699.aspx#feedback 1 http://blogs.ugidotnet.org/nettools/comments/commentRss/38699.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/38699.aspx Reporting Services 2005 Data Source Expressions http://blogs.ugidotnet.org/nettools/archive/2006/01/28/33842.aspx Il mio collega Alessandro mi ha informato della possibilit&agrave; - davvero estermamente utile - di poter rendere parametriche le stringhe di connessione che i report utilizzano per collegarsi ai database dalla quale estrarre i dati.<br> <br> Il link alla quale &egrave; possibile avere informazioni dettagliate &egrave; questo: <a href="http://msdn2.microsoft.com/en-us/library/ms156450.aspx">http://msdn2.microsoft.com/en-us/library/ms156450.aspx</a><img src="http://blogs.ugidotnet.org/nettools/aggbug/33842.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2006/01/28/33842.aspx Sat, 28 Jan 2006 19:12:00 GMT http://blogs.ugidotnet.org/nettools/archive/2006/01/28/33842.aspx#feedback http://blogs.ugidotnet.org/nettools/comments/commentRss/33842.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/33842.aspx Speaker alla SQL PASS 2006 Europe! http://blogs.ugidotnet.org/nettools/archive/2006/01/16/33019.aspx <P>In questi giorni mi &#232; arrivata una mail che mi&nbsp;riempe di orgoglio: sono stato chiamato come speaker alla pi&#249; importante conferenza Europea su SQL Server; sto parlando della SQL PASS 2006 Europe che si terr&#224; a Barcellona il prossimo Febbraio.</P> <P>La sessione che terr&#242; (insieme al mio collega Alessandro Rezzani) e che ci ha fatto guadagnare il palco internazionale, &#232; relativa ad un utilizzo molto spinto dei Reporting Services&nbsp;(versione 2000) e .NET: la sessione verter&#224; sulla possibilit&#224; di far digerire ai Reporting Services una query scritta a Run-Time, cosa che permette quindi coprire quelle esigenze altrimenti risolvibili solo con strumenti molto pi&#249; potenti e complessi (Analysis Server su tutti).</P> <P>Per chiunque volesse partecipare (sono due giorni di full immersion sulla piattaforma SQL Server) gli abstract delle sessioni li trovate qui:</P> <P><A href="http://www.sqlpass.org/events/europe/2006/sessions.cfm">http://www.sqlpass.org/events/europe/2006/sessions.cfm</A></P> <P>Ora mi aspetta un bel periodo di duro lavoro, sopratutto per rendere il mio inglese il pi&#249; fluente possibile, dato che il tempo disponibile per la sessione &#232; solo di un'ora, e quindi non posso sbagliare neanche una parola ...le cose da dire sono davvero molte. <a title="" href="#" ><img src="http://www.davidemauri.it/emoticone/appagato.gif" border="0"/></a></P> <P>L'approcio alla sessione sar&#224;, come nel mio stile, un "classico", ossia teoria quanto basta (spiegheremo l'architettura dell'applicazione e l'object model che abbiamo usato per la generazione al volo delle query) e poi tanto codice da commentare e da toccare con mano. Al pubblico italiano normalmente piace, speriamo che piaccia anche ai colleghi al di l&#224; delle Alpi!</P> <P>&nbsp;</P><img src="http://blogs.ugidotnet.org/nettools/aggbug/33019.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2006/01/16/33019.aspx Mon, 16 Jan 2006 19:26:00 GMT http://blogs.ugidotnet.org/nettools/archive/2006/01/16/33019.aspx#feedback 11 http://blogs.ugidotnet.org/nettools/comments/commentRss/33019.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/33019.aspx ReportViewer Control in Visual Studio 2005 http://blogs.ugidotnet.org/nettools/archive/2006/01/08/32603.aspx <P>Volete provare ad utilizzare il controllo ReportViewer fornito con Visual Studio 2005 per sfruttare i Reporting Services? Volete provarlo per capire se pu&#242; sostituire Crystal Report?</P> <P>Bene, questo sito fa per voi:</P> <P><A href="http://www.gotreportviewer.com/">http://www.gotreportviewer.com/</A></P><img src="http://blogs.ugidotnet.org/nettools/aggbug/32603.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2006/01/08/32603.aspx Sun, 08 Jan 2006 12:48:00 GMT http://blogs.ugidotnet.org/nettools/archive/2006/01/08/32603.aspx#feedback 9 http://blogs.ugidotnet.org/nettools/comments/commentRss/32603.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/32603.aspx SQL Server 2005 Express Edition le Features ed i Reporting Services http://blogs.ugidotnet.org/nettools/archive/2005/11/05/29257.aspx <P>Sto terminando di preparare la sessione sui Reporting Services per WPC ed ho quindi installato tutte le versioni della suite Express per vedere come si comportano i Reporting Services in questi casi.....con mia sopresa nella versione RTM non trovo i controlli relativi ai report che invece erano presenti nella beta 2.</P> <P>Dopo alcuni minuti di ricerca su internet trovo la spiegazione di tutto in questo articolo appena rilasciato, che descrive tutte le funzionalit&#224; presenti e <EM>future </EM>della versione Express di SQL Server 2005:</P> <P><A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsse/html/sseoverview.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsse/html/sseoverview.asp</A></P> <P>Tra le <EM>future</EM> ci sono i reporting services....che come estrapolato da questa nota </P> <P>"<EM>Note that Full Text Search and Reporting Services will be added to SQL Server Express Edition later in 2006</EM>"</P> <P>saranno quindi rilasciati nel 2006, insieme al supporto per il Full-Text search.</P> <P>Speriamo che il 2006 arrivi presto e che non facciano scherzi (tipo che fanno uscire queste nuove funzionalit&#224; diciamo....a Novembre del 2006?....magari il 7? :-))</P> <P> </P><img src="http://blogs.ugidotnet.org/nettools/aggbug/29257.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2005/11/05/29257.aspx Sat, 05 Nov 2005 14:51:00 GMT http://blogs.ugidotnet.org/nettools/archive/2005/11/05/29257.aspx#feedback 2 http://blogs.ugidotnet.org/nettools/comments/commentRss/29257.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/29257.aspx Service Broker per la BI http://blogs.ugidotnet.org/nettools/archive/2005/07/19/23839.aspx <P>Grazie alla (relativa) semplicit&#224; nel creare applicazioni asincrone introdotta dal Service Broker, diventa piuttosto interessate provare ad utilizzare&nbsp;un'approcio asincrono&nbsp;in soluzioni dove, ad oggi, non l'avremmo mai provato.</P> <P>La prima cosa che mi viene in mente &#232; la Business Intelligence. Supponiamo di avere un sito di eCommerce piuttosto grosso e visitato; molto probabilmente avremo due database distinti, un per la gestione delle transazioni online (e quindi ordini, catalogo prodotti, anagrafica utenti, e via dicendo), ed un datawarehouse&nbsp;per lo contenere lo storico di tutte le transazioni e di tutti i dati.</P> <P>Normalmente l'aggiornamento del datawarehouse viene fatto di notte, tramite processi batch. Questo per diversi motivi, tra cui:</P> <OL> <LI>la grande quantit&#224; di dati da spostare</LI> <LI>la denormalizzazione degli stessi per ottimizzare query di reportistica</LI> <LI>l'ottimizzazione del datawarehouse verso la velocit&#224; di lettura (quindi, potenzialmente, molti e grossi indici), contrapposta all'ottimizzazione del database OLTP per un buon equilibrio tra letture e scritture (quindi pochi indici e -&nbsp;possibilimente -&nbsp;piccoli, e magari con un&nbsp;fillfactor&nbsp;relativamente basso)</LI></OL> <P>che rendono impraticabile un aggiornamento del datawarehouse in tempo reale, pena un notevole ralletamente delle operazioni OLTP.</P> <P>Tutto questo per&#242; se siamo in un meccanismo sincrono, come il seguente:</P> <P><FONT face="Courier New">BEGIN TRAN</FONT></P> <P><FONT face="Courier New">' Inserisco nel db OLTP<BR>INSERT INTO TabellaOrdini VALUES &lt;....&gt;</FONT></P> <P><FONT face="Courier New">' Inserisco nel datawarehouse<BR>INSERT INTO TabellaStoricoOrdini VALUES &lt;...&gt;<BR></FONT></P> <P><FONT face="Courier New">...</FONT></P> <P><FONT face="Courier New">COMMT TRAN</FONT></P> <P>Dove ovviamente la transazione deve aspettare che tutti gli statement <EM>insert</EM> terminino il proprio lavoro.</P> <P>Se per&#242; utilizziamo il Broker per introdurre e sfruttare un meccanismo asincrono possiamo scrivere quacosa del genere:</P> <P><FONT face="Courier New">BEGIN TRAN</FONT></P> <P><FONT face="Courier New">' Inserisco nel db OLTP<BR>INSERT INTO TabellaOrdini VALUES &lt;....&gt;</FONT></P> <P><FONT face="Courier New">'&nbsp;invio una notifica di inserimento&nbsp;nel datawarehouse<BR>SEND ON CONVERSATION ..... (@message)</FONT></P> <P><FONT face="Courier New">...</FONT></P> <P><FONT face="Courier New">COMMT TRAN</FONT></P> <P>Questo approcio permette di rendere asincroni tutti gli aggiornamenti da fare sul datawarehouse e quindi non diventano bloccanti per la transazione online; questo permette inoltre di avere il datawarehouse aggiornata in tempo "quasi-reale", in quanto il Broker &#232; in grado si scalare automaticamente per far fronte anche a molte richieste contemporanee....ed in questo modo i nostri report potranno lavorare su dati il pi&#249; possibile aggiornati.</P><img src="http://blogs.ugidotnet.org/nettools/aggbug/23839.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2005/07/19/23839.aspx Tue, 19 Jul 2005 16:18:00 GMT http://blogs.ugidotnet.org/nettools/archive/2005/07/19/23839.aspx#feedback 3 http://blogs.ugidotnet.org/nettools/comments/commentRss/23839.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/23839.aspx Reporting Services Dynamic Queries http://blogs.ugidotnet.org/nettools/archive/2005/07/16/23745.aspx <P>Attualmente uno dei grossi limiti dei Reporting Services - anche se, a dirla tutta,&nbsp;&#232; un p&#242; forzato parlare di limite - &#232; l'impossibilit&#224; da parte dell'utente finale (l'utilizzatore del report) di poter ridefinire la query sulla quale il report &#232; stato creato.</P> <P>Certo, la presenza&nbsp;dei parametri e la possibliti&#224; quindi di creare query parametriche rende l'esigenza piuttosto remota, ma non per questo meno sentita quando si devono realizzare report i cui parametri, a priori, non sono conosciuti. Questo pu&#242; avvenire quando il report &#232; fatto su una base dati piuttosto grossa, dove non &#232; possibile sapere che tipo di filtro dovr&#224; essere applicato e con che logica.</P> <P>Missione impossibile? Per nulla! I Reporting Services sono stati progettati per essere estesi e quindi...detto fatto: scartata l'ipotesti di crearea una <EM>data extension</EM>, data la difficolt&#224; che, nel mio caso, unita al poco tempo a disposizione, rendeva la strada poco percorribile, ho scelto un'altra via che si &#232; mostrata altamente flessibile e altrettanto potente.</P> <P>La via scelta &#232; quella di costruire un <EM>custom assembly</EM>&nbsp;che &#232; in grado di produrre una query T-SQL o PL-SQL al volo, tramite l'adozione di un semplice Object Model per l'incapsulamente della stessa. Tale query pu&#242; essere passata ai Reporting Services come <EM>expression</EM>: con questo giochetto i Reporting Services diventano cos&#236; capaci di potere eseguire una query specificata da un utente a run-time, non a design time, tramite un'applicazione creata ad-hoc per far si che la query possa essere creata visualmente, senza che l'utente finale di debba trovare a dover scrivere una sola riga di codice SQL.</P> <P>Niente male davvero!</P> <P>&nbsp;</P><img src="http://blogs.ugidotnet.org/nettools/aggbug/23745.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2005/07/16/23745.aspx Sat, 16 Jul 2005 22:57:00 GMT http://blogs.ugidotnet.org/nettools/archive/2005/07/16/23745.aspx#feedback http://blogs.ugidotnet.org/nettools/comments/commentRss/23745.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/23745.aspx Reporting Services 2000 SP2 HotFix http://blogs.ugidotnet.org/nettools/archive/2005/07/02/22061.aspx <P>E'&nbsp;disponibile per il download una hotfix (KB901383) per la SP2 dei reporting services:</P> <P><A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7FFE50D4-AFF8-4C1E-9609-6798190C2D58&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=7FFE50D4-AFF8-4C1E-9609-6798190C2D58&amp;displaylang=en</A></P> <P>Qui c'&#232; l'elenco delle fix inserite:</P> <P><A href="http://support.microsoft.com/?kbid=901383">http://support.microsoft.com/?kbid=901383</A></P><img src="http://blogs.ugidotnet.org/nettools/aggbug/22061.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2005/07/02/22061.aspx Sat, 02 Jul 2005 11:51:00 GMT http://blogs.ugidotnet.org/nettools/archive/2005/07/02/22061.aspx#feedback 2 http://blogs.ugidotnet.org/nettools/comments/commentRss/22061.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/22061.aspx