Height 100% nel controllo ReportViewer

by Andrea 08 November 2006 16:11

Impostando Height="100%" nel controllo ReportViewer (in ASP.NET) vi potrà accadere la stessa cosa successa a me, e cioè che quando visualizzate una pagina con il controllo così impostato al suo interno, vi apparirà solamente la barra e non vedrete il vostro report.
Accade che il controllo si setta con un'altezza pari alla sola barra.
Non immagino il perchè di questo anomalo comportamento, ma lo posto qui, così che non perdiate anche voi lo stesso tempo che ho perso anch'io nel capire il perchè i dati non comparivano.

Perciò attenzione nel mettere Height="100%" al controllo ReportViewer.

Technorati tags: ,

Tags:

.NET | Reporting Services

Comments

14/11/2006 06:11 #

Perchè devi aggiungere una Web Reference al web services di reporting services, che dovrebbe avere un url simile a:
http://NOMEtuoSERVERdeiREPORT/reportserver/ReportService2005.asmx?wsdl

e ReportingService2005 fa parte del NameSpace che attribuirai al WebService.
          

Andrea |

14/11/2006 14:11 #

Ciao

Sto utilizzando con winform il componente ReportViewer , volevo sapere se è
possibile recuperare l'elenco dei report presente sul server (magari
menttendoli in un combobox) per poi farli visualizzare al componente?


mi sai dare qualche dritta!?

Bello il tuo sito!

Ho letto che se non si è della zona non si fare parte!... Peccato!


ciao
          

Imbesi Francesco |

14/11/2006 15:11 #

Ciao

ho un piccolo problema sicuramente banale..

Uso i seguetni namespace:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Web.Services.Protocols;
using Microsoft.Reporting.WinForms;
using Microsoft.ReportingServices;


ma non mi riconosce il tipo :

"ReportingService2005"

non capisco il perche!

ciao e grazie
          

Imbesi Francesco |

14/11/2006 22:11 #

Dovresti consumare il WebService ../reportserver/ReportService2005.asmx?wsdl e poi usare il metodo ReportingService2005.FindItems.

A questo url trovi info sul metodo
msdn2.microsoft.com/.../...vice2005.finditems.aspx

Per quanto rigurda il sito XeDotNet, tutti possono farne parte tranquillamente. Solo che facciamo gli incontri in veneto.
          

Andrea |

17/11/2006 03:11 #

Ciao

Ho referenziato il web service...

E' uso il seguente codice per cercate la lista dei report...

Pero mi da errore in "conditions"

"A first chance exception of type 'System.InvalidOperationException' occurred in System.Web.Services.dll"

Come mai?

ReportingService2005 rs = new ReportingService2005();
            rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
            rs.Url = "http://localhost/reportserver";

            CatalogItem[] items = null;

            SearchCondition condition = new SearchCondition();
            condition.Condition = ConditionEnum.Contains;
            condition.ConditionSpecified = true;
            condition.Name = "Name";
            condition.Value = "";

            SearchCondition[] conditions = new SearchCondition[1];
            conditions[0] = condition;

            try
                {
                  items = rs.FindItems( "/Report/", BooleanOperatorEnum.Or, conditions );
                  if ( items != null )
                  {
                    foreach ( CatalogItem ci in items)
                        {
                            Console.WriteLine( "Stampe {0} trovate di {1}", ci.Name, ci.Path );
                        //  MessageBox.Show(ci.Path.ToString() + " -- " + ci.Path.ToString());
                        }
                  }
                }

           catch ( SoapException e )
                {
                  Console.WriteLine( e.Detail.InnerXml.ToString() );
                }


Grazie in anticipo!
          

Imbesi Francesco |

17/11/2006 09:11 #

Nel tuo caso, allora sarebbe meglio che usassi ReportingService2005.ListChildren (msdn2.microsoft.com/.../...e2005.listchildren.aspx).
Questo metodo vuole l'url virtuale di partenza come primo argomento e come secondo argomento un booleano per sapere se ritornarti anche i report contenuti in eventuali sottocartelle ricorsivamente.

E' sufficiente che copi l'esempio che trovi su msdn e che sostituisci il metodo ListChildren che trovi li con
items = rs.ListChildren("Report", true);

Tra qualche giorno, nel sito www.xedotnet.org verrà pubblicato il materiole dell'ultimo meeting che rigurdava per appunto Reporting Services e c'è giusto un esempio di come recuperare una lista di report e caricarla su una DropDownList, oltre ad altri interessanti esempi.

Spero di averti aiutato. ;o)
          

Andrea |

19/11/2006 03:11 #

Ciao

Si in effetti ListChildren e piu comodo...

Nella mia applicazione io associo il risultato della ricerca ad una DataGridView per avere una lista dei report presenti sul server...

Volendo filtrare il risultato per ottenere  solo il "path" e la "description" del report come posso fare?

Visto che ci sono infomazioni superflue nel mio caso !

Questo è il mio codice:

private void ListaReport()
  {
  ReportingService2005 rs = new ReportingService2005();
            rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
            rs.Url = "http://localhost/reportserver/reportservice2005.asmx";

            CatalogItem[] items = null;

          
            SearchCondition condition = new SearchCondition();
            condition.Condition = ConditionEnum.Contains;
            condition.ConditionSpecified = true;
            condition.Name  = "Name";
            condition.Value = "rp";

            SearchCondition[] conditions = new SearchCondition[1];
            conditions[0] = condition;

            try
                {
                  items = rs.ListChildren("/",true);
                //items = rs.FindItems("/", BooleanOperatorEnum.Or, conditions );
                  }

           catch ( SoapException se )
                {
                  Console.WriteLine( se.Detail.InnerXml.ToString() );
                }

            dataGridView1.DataSource = items;
          
           }

Ciao e grazie ancora
          

Imbesi Francesco |

Comments are closed