Reporting http://blogs.ugidotnet.org/PietroLibroBlog/category/Reporting.aspx Reporting it-IT Pietro Libro pietro.libro@libero.it Subtext Version 2.6.0.0 Report e proprietà OnLastPage http://blogs.ugidotnet.org/PietroLibroBlog/archive/2009/11/29/report-e-proprieta-onlastpage.aspx Se in un Report, desideriamo che il contenuto del footer sia visualizzato solo nell'ultima pagina , possiamo impostare la proprietà "PrintOnLastPage" del footer a true. Fin qui tutto ok. Però , ieri mi è capitata una situazione (apparentemente) strana: nonostante la proprietà fosse impostata correttamente, il ReportViewer (e di conseguenza la stampa) riportava il piè di pagina su tutte le pagine ad esclusione della prima. Non avendo trovato una soluzione e spiegazione valida, ho risolto impostando la proprietà "Visibility\Hidden" dei controlli contenuti nel footer su :=(Globals!PageNumber &lt;globals !TotalPages)<img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/97629.aspx" width="1" height="1" /> Pietro Libro http://blogs.ugidotnet.org/PietroLibroBlog/archive/2009/11/29/report-e-proprieta-onlastpage.aspx Sun, 29 Nov 2009 12:08:02 GMT http://blogs.ugidotnet.org/PietroLibroBlog/archive/2009/11/29/report-e-proprieta-onlastpage.aspx#feedback http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/97629.aspx http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/97629.aspx The setup failed to read IIsMimeMap table&hellip; http://blogs.ugidotnet.org/PietroLibroBlog/archive/2009/01/11/the-setup-failed-to-read-iismimemap-tablehellip.aspx <p>Finalmente sono riuscito a ritagliare del tempo per formattare e ripristinare il mio portatile, prima che arrivi il mio periodo “caldo” (causa lavoro e Università). In questi giorni, mi è capitato di dover rimuovere da un PC, SQL Server 2005, nel caso in cui durante il processo di disinstallazione si presenti il messaggio : <em>Il programma di installazione non riesce a leggere tabella IIsMimeMap. Il codice di errore è-2147024893 (o The setup failed to read IIsMimeMap table. The error code is –2147024893 )</em></p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ThesetupfailedtoreadIIsMimeMaptable_11E16/image_2.png"><img height="86" border="0" width="244" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ThesetupfailedtoreadIIsMimeMaptable_11E16/image_thumb.png" alt="image" style="border-width: 0px; display: inline;" title="image" /></a> </p> <p>la soluzione è in <a href="http://support.microsoft.com/?kbid=921901">questo</a> articolo, in pratica si tratta di disabilitare in sequenza i servizi <em>Servizio  </em>di <em>Amministrazione di IIS</em> e <em>Servizio</em> <em>Pubblicazione sul Web </em>prima di procedere con la<em> </em>disinstallazione </p><img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/95167.aspx" width="1" height="1" /> Pietro Libro http://blogs.ugidotnet.org/PietroLibroBlog/archive/2009/01/11/the-setup-failed-to-read-iismimemap-tablehellip.aspx Sun, 11 Jan 2009 21:34:00 GMT http://blogs.ugidotnet.org/PietroLibroBlog/archive/2009/01/11/the-setup-failed-to-read-iismimemap-tablehellip.aspx#feedback http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/95167.aspx http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/95167.aspx Image, MemoryStream e file .rdlc http://blogs.ugidotnet.org/PietroLibroBlog/archive/2008/11/25/image-memorystream-e-file-.rdlc.aspx <p>Supponiamo di avere un file di Report in formato .rdlc, e di voler stampare una lista di prodotti visualizzando un'immagine prodotta a run-time e memorizzata in un <em>MemoryStream</em>, piuttosto che utilizzare file d'immagine. Ad esempio, supponiamo di avere nel nostro Database, una tabella denominata Prodotti, contenente 4 colonne:</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ImageStreamefile.rdlc_F64E/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="93" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ImageStreamefile.rdlc_F64E/image_thumb.png" width="244" border="0" /></a> </p> <p>Aggiungiamo al nostro progetto (ad esempio di tipo <em>Web Application</em>) un DataSet tipizzato (<em>dsProdotti</em>)  contenente un DataTable <em>Prodotti</em>, a cui andiamo ad aggiungere una colonna denominata  <em>Immagine,</em> con proprietà <em>DataType</em> impostata su <em>System.Byte[]</em>:</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ImageStreamefile.rdlc_F64E/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="193" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ImageStreamefile.rdlc_F64E/image_thumb_1.png" width="244" border="0" /></a> </p> <p>Aggiungiamo un nuovo file di Report (<em>Report1.rdlc</em>), nel designer del report, dalla toolbox degli strumenti, trasciniamo nella sezione <em>Body</em>, un item <em>Table</em> che configuriamo  opportunamente:</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ImageStreamefile.rdlc_F64E/image_6.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="92" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ImageStreamefile.rdlc_F64E/image_thumb_2.png" width="389" border="0" /></a> </p> <p>Come si evince dalla figura, nell'ultima colonna della <em>Table</em>, è stato aggiunto un controllo Image. Affinchè il tutto funzioni correttamente, è necessario impostare correttamente le proprietà di questo controllo, ovvero: </p> <ol> <li>La proprietà <em>Source</em> deve essere impostata su <em>Database</em> </li> <li>La proprietà <em>MIMEType</em> deve essere impostata sul tipo di immagine che si vuole visualizzare (<em>images/gif, image/jpeg</em> etc...) </li> <li>La proprietà <em>Value</em> deve essere impostata sul valore campo contenente lo Stream di byte, nello specifico: <em>=Fields!Immagine.Value</em> </li> </ol> <p>Agganciato il report ad un opportuno controllo <em>ReportViewer</em>  non resta che scrivere il codice per recuperare i dati dal Database e popolare un opportuno DataTable, da utilizzare come sorgente dati per il Report:</p> <div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:b7f16d89-55a9-4719-80b9-a1fcce2d387f" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><pre style="background-color:White;;overflow: auto;"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;"> 1</span> <span style="color: #000000;">DsProdotti dsProdotti </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> DsProdotti(); </span><span style="color: #008080;"> 2</span> <span style="color: #000000;"> </span><span style="color: #008080;"> 3</span> <span style="color: #000000;">dsProdotti.Prodotti.RowChanged </span><span style="color: #000000;">+=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> DataRowChangeEventHandler(Prodotti_RowChanged); </span><span style="color: #008080;"> 4</span> <span style="color: #000000;"> </span><span style="color: #008080;"> 5</span> <span style="color: #000000;" /><span style="color: #0000FF;">using</span><span style="color: #000000;"> (DsProdottiTableAdapters.ProdottiTableAdapter prodottiAdapter </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> ReportConImmaginiStream.DsProdottiTableAdapters.ProdottiTableAdapter()) </span><span style="color: #008080;"> 6</span> <span style="color: #000000;">{ </span><span style="color: #008080;"> 7</span> <span style="color: #000000;"> prodottiAdapter.Fill(dsProdotti.Prodotti); </span><span style="color: #008080;"> 8</span> <span style="color: #000000;">} </span><span style="color: #008080;"> 9</span> <span style="color: #000000;"> </span><span style="color: #008080;">10</span> <span style="color: #000000;">ReportViewer1.LocalReport.DataSources.Clear(); </span><span style="color: #008080;">11</span> <span style="color: #000000;">ReportViewer1.LocalReport.DataSources.Add(</span><span style="color: #0000FF;">new</span><span style="color: #000000;"> Microsoft.Reporting.WebForms.ReportDataSource(</span><span style="color: #800000;">"</span><span style="color: #800000;">DsProdotti_Prodotti</span><span style="color: #800000;">"</span><span style="color: #000000;">, dsProdotti.Prodotti));</span></div></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div> <p> </p> <p>Gestendo  l'evento <em>RowChanged</em> del DataTable <em>Prodotti, </em>possiamo popolare il valore del campo <em>Immagine</em> della riga aggiunta alla collezione del DataTable, con lo stream di byte rappresentante l'immagine che vogliamo visualizzare:</p> <div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:89f3ea7f-1dd7-4d3b-b8d5-5ff2b4814e35" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><pre style="background-color:White;;overflow: auto;"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;">1</span> <span style="color: #0000FF;">void</span><span style="color: #000000;"> Prodotti_RowChanged(</span><span style="color: #0000FF;">object</span><span style="color: #000000;"> sender, DataRowChangeEventArgs e) </span><span style="color: #008080;">2</span> <span style="color: #000000;">{ </span><span style="color: #008080;">3</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">if</span><span style="color: #000000;"> (e.Action </span><span style="color: #000000;">==</span><span style="color: #000000;"> DataRowAction.Add) </span><span style="color: #008080;">4</span> <span style="color: #000000;"> { </span><span style="color: #008080;">5</span> <span style="color: #000000;"> </span><span style="color: #008000;">//</span><span style="color: #008000;">Immagine da Stream</span><span style="color: #008000;"> </span><span style="color: #008080;">6</span> <span style="color: #008000;" /><span style="color: #000000;"> e.Row[</span><span style="color: #800000;">"</span><span style="color: #800000;">Immagine</span><span style="color: #800000;">"</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> ImageDataRow.ImageDataRowIstance.GetImageArray(); </span><span style="color: #008080;">7</span> <span style="color: #000000;"> } </span><span style="color: #008080;">8</span> <span style="color: #000000;">}</span></div></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div> <p>Dove il codice della classe <em>ImageDataRow </em>è il seguente:</p> <p /> <div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:ac892a56-29fe-4b89-8e5a-9c8b122e7a8d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><pre style="background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;;overflow: auto;"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;"> 1</span> <span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">class</span><span style="color: #000000;"> ImageDataRow </span><span style="color: #008080;"> 2</span> <span style="color: #000000;">{ </span><span style="color: #008080;"> 3</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">static</span><span style="color: #000000;"> </span><span style="color: #0000FF;">byte</span><span style="color: #000000;">[] _imageArray </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">null</span><span style="color: #000000;">; </span><span style="color: #008080;"> 4</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">static</span><span style="color: #000000;"> ImageDataRow _imageDataRowIstance; </span><span style="color: #008080;"> 5</span> <span style="color: #000000;"> </span><span style="color: #008080;"> 6</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">private</span><span style="color: #000000;"> ImageDataRow() { } </span><span style="color: #008080;"> 7</span> <span style="color: #000000;"> </span><span style="color: #008080;"> 8</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">static</span><span style="color: #000000;"> ImageDataRow ImageDataRowIstance </span><span style="color: #008080;"> 9</span> <span style="color: #000000;"> { </span><span style="color: #008080;">10</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">get</span><span style="color: #000000;"> </span><span style="color: #008080;">11</span> <span style="color: #000000;"> { </span><span style="color: #008080;">12</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">if</span><span style="color: #000000;"> (_imageDataRowIstance </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #0000FF;">null</span><span style="color: #000000;">) </span><span style="color: #008080;">13</span> <span style="color: #000000;"> _imageDataRowIstance </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> ImageDataRow(); </span><span style="color: #008080;">14</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> _imageDataRowIstance; </span><span style="color: #008080;">15</span> <span style="color: #000000;"> } </span><span style="color: #008080;">16</span> <span style="color: #000000;"> } </span><span style="color: #008080;">17</span> <span style="color: #000000;"> </span><span style="color: #008080;">18</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> System.Byte[] GetImageArray() </span><span style="color: #008080;">19</span> <span style="color: #000000;"> { </span><span style="color: #008080;">20</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">if</span><span style="color: #000000;"> (_imageArray </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #0000FF;">null</span><span style="color: #000000;">) </span><span style="color: #008080;">21</span> <span style="color: #000000;"> { </span><span style="color: #008080;">22</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">using</span><span style="color: #000000;"> (MemoryStream imgStream </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> MemoryStream()) </span><span style="color: #008080;">23</span> <span style="color: #000000;"> { </span><span style="color: #008080;">24</span> <span style="color: #000000;"> System.Drawing.Image img </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> Bitmap(</span><span style="color: #800080;">32</span><span style="color: #000000;">, </span><span style="color: #800080;">32</span><span style="color: #000000;">); </span><span style="color: #008080;">25</span> <span style="color: #000000;"> Graphics gr </span><span style="color: #000000;">=</span><span style="color: #000000;"> Graphics.FromImage(img); </span><span style="color: #008080;">26</span> <span style="color: #000000;"> gr.FillRectangle(</span><span style="color: #0000FF;">new</span><span style="color: #000000;"> SolidBrush(Color.White), </span><span style="color: #800080;">0</span><span style="color: #000000;">, </span><span style="color: #800080;">0</span><span style="color: #000000;">, </span><span style="color: #800080;">32</span><span style="color: #000000;">, </span><span style="color: #800080;">32</span><span style="color: #000000;">); </span><span style="color: #008080;">27</span> <span style="color: #000000;"> gr.DrawEllipse(</span><span style="color: #0000FF;">new</span><span style="color: #000000;"> Pen(Color.Red, </span><span style="color: #800080;">2</span><span style="color: #000000;">), </span><span style="color: #800080;">1</span><span style="color: #000000;">, </span><span style="color: #800080;">1</span><span style="color: #000000;">, </span><span style="color: #800080;">30</span><span style="color: #000000;">, </span><span style="color: #800080;">30</span><span style="color: #000000;">); </span><span style="color: #008080;">28</span> <span style="color: #000000;"> img.Save(imgStream, System.Drawing.Imaging.ImageFormat.Gif); </span><span style="color: #008080;">29</span> <span style="color: #000000;"> _imageArray </span><span style="color: #000000;">=</span><span style="color: #000000;"> imgStream.ToArray(); </span><span style="color: #008080;">30</span> <span style="color: #000000;"> } </span><span style="color: #008080;">31</span> <span style="color: #000000;"> } </span><span style="color: #008080;">32</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> _imageArray; </span><span style="color: #008080;">33</span> <span style="color: #000000;"> } </span><span style="color: #008080;">34</span> <span style="color: #000000;">}</span></div></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div> <p /> <p>Dato che nell'esempio viene visualizzata sempre la stessa immagine, per non instanziare ad ogni riga un oggetto <em>MemoryStream</em> ed eseguire il codice di  disegno, si è scelto di utilizzare un <a href="http://it.wikipedia.org/wiki/Singleton" target="_blank">Singleton</a>. Ovviamente, nel caso in cui l'immagine debba cambiare a seconda dei valori contenuti nella riga, il codice dovrà essere ottimizzato opportunamente.</p> <p>Il risultato che si otterrà eseguendo il codice, sarà qualcosa del tipo:</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ImageStreamefile.rdlc_F64E/image_8.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="180" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ImageStreamefile.rdlc_F64E/image_thumb_3.png" width="244" border="0" /></a> </p> <p><a href="http://www.pietrolibro.name/sources/ReportConImmaginiStream.zip" target="_blank">Sorgenti completi del progetto</a></p><img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/94755.aspx" width="1" height="1" /> Pietro Libro http://blogs.ugidotnet.org/PietroLibroBlog/archive/2008/11/25/image-memorystream-e-file-.rdlc.aspx Tue, 25 Nov 2008 18:42:48 GMT http://blogs.ugidotnet.org/PietroLibroBlog/archive/2008/11/25/image-memorystream-e-file-.rdlc.aspx#feedback http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/94755.aspx http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/94755.aspx Report Locali &amp; ReportDataSource http://blogs.ugidotnet.org/PietroLibroBlog/archive/2008/04/15/92210.aspx <p>Post nato da una discussione su forum. Supponiamo di avere un DataSet tipizzato contenente un oggetto DataTable "Articoli" come in figura:</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ReportLocaliReportDataSource_BE2B/DataSet_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="180" alt="DataSet" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ReportLocaliReportDataSource_BE2B/DataSet_thumb.jpg" width="244" border="0" /></a></p> <p>Supponiamo di avere anche un report locale del tipo:</p> <p> <a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ReportLocaliReportDataSource_BE2B/Immagine_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="88" alt="Immagine" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ReportLocaliReportDataSource_BE2B/Immagine_thumb.jpg" width="244" border="0" /></a>  </p> <p>Per associare il nostro DataTable al report, possiamo utilizzare un ReportDataSource, scrivendo del codice tipo:</p> <p> </p><div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:bb5281b8-20d3-4902-8121-996bee9e2a1d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><pre style="background-color:White;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;;overflow: auto;"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;"> 1</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> dsStampa </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> </span><span style="color: #0000FF;">New</span><span style="color: #000000;"> DsStampa() </span><span style="color: #008080;"> 2</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> tableArticoli </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> </span><span style="color: #0000FF;">New</span><span style="color: #000000;"> DsStampa.ArticoliDataTable() </span><span style="color: #008080;"> 3</span> <span style="color: #000000;"> </span><span style="color: #008080;"> 4</span> <span style="color: #000000;"> </span><span style="color: #008000;">'</span><span style="color: #008000;">Aggiungo un paio di righe</span><span style="color: #008000;"> </span><span style="color: #008080;"> 5</span> <span style="color: #008000;"></span><span style="color: #000000;"> </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> articoloRow </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> DsStampa.ArticoliRow </span><span style="color: #000000;">=</span><span style="color: #000000;"> tableArticoli.NewArticoliRow() </span><span style="color: #008080;"> 6</span> <span style="color: #000000;"> articoloRow.Codice </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">CODICE A</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #008080;"> 7</span> <span style="color: #000000;"> articoloRow.Descrizione </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;"> DESCRIZIONE 1</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #008080;"> 8</span> <span style="color: #000000;"> tableArticoli.Rows.Add(articoloRow) </span><span style="color: #008080;"> 9</span> <span style="color: #000000;"> </span><span style="color: #008080;">10</span> <span style="color: #000000;"> articoloRow </span><span style="color: #000000;">=</span><span style="color: #000000;"> tableArticoli.NewArticoliRow() </span><span style="color: #008080;">11</span> <span style="color: #000000;"> articoloRow.Codice </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">CODICE B</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #008080;">12</span> <span style="color: #000000;"> articoloRow.Descrizione </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;"> DESCRIZIONE 2</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #008080;">13</span> <span style="color: #000000;"> tableArticoli.Rows.Add(articoloRow) </span><span style="color: #008080;">14</span> <span style="color: #000000;"> </span><span style="color: #008080;">15</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">Dim</span><span style="color: #000000;"> reportDataSource </span><span style="color: #0000FF;">As</span><span style="color: #000000;"> </span><span style="color: #0000FF;">New</span><span style="color: #000000;"> Microsoft.Reporting.WinForms.ReportDataSource() </span><span style="color: #008080;">16</span> <span style="color: #000000;"> </span><span style="color: #008080;">17</span> <span style="color: #000000;"> reportDataSource.Name </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">DsStampa_Articoli</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #008080;">18</span> <span style="color: #000000;"> reportDataSource.Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> tableArticoli </span><span style="color: #008080;">19</span> <span style="color: #000000;"> </span><span style="color: #008080;">20</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">Me</span><span style="color: #000000;">.ReportViewer1.LocalReport.ReportPath </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">Report1.rdlc</span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #008080;">21</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">Me</span><span style="color: #000000;">.ReportViewer1.LocalReport.DataSources.Clear() </span><span style="color: #008080;">22</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">Me</span><span style="color: #000000;">.ReportViewer1.LocalReport.DataSources.Add(reportDataSource) </span><span style="color: #008080;">23</span> <span style="color: #000000;"> </span><span style="color: #0000FF;">Me</span><span style="color: #000000;">.ReportViewer1.RefreshReport()</span></div></pre><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --></div> <p>E' importante non sbagliare ad impostare la stringa della proprietà <em>Name </em>della nostra istanza di reportDataSource con il valore presente nelle proprietà <em>Table</em> del report</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ReportLocaliReportDataSource_BE2B/Immagine_4.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="233" alt="Immagine" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ReportLocaliReportDataSource_BE2B/Immagine_thumb_1.jpg" width="244" border="0" /></a></p> <p>altrimenti all'interno del ReportViewer verrebbe notificato un errore che indica che non è stata fornita nessuna sorgente dati</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ReportLocaliReportDataSource_BE2B/Immagine1_2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="139" alt="Immagine1" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/WindowsLiveWriter/ReportLocaliReportDataSource_BE2B/Immagine1_thumb.jpg" width="244" border="0" /></a> </p> <p>Codice sorgente: <a href="http://www.pietrolibro.name/sources/test report.zip" target="_blank">Test Report.zip</a></p> <p> </p> <p> </p><div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:68c2e4ac-e02e-4115-ba67-f1fd2603a1a4" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tag: <a href="http://technorati.com/tags/ReportDataSource" rel="tag">ReportDataSource</a></div><img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/92210.aspx" width="1" height="1" /> Pietro Libro http://blogs.ugidotnet.org/PietroLibroBlog/archive/2008/04/15/92210.aspx Tue, 15 Apr 2008 12:07:50 GMT http://blogs.ugidotnet.org/PietroLibroBlog/archive/2008/04/15/92210.aspx#feedback 2 http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/92210.aspx http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/92210.aspx