Compartir a través de


Establecer el espacio de nombres de elementos para el método GetProperties

Puede utilizar el encabezado SOAP ItemNamespaceHeader en Reporting Services para recuperar propiedades de elementos basadas en dos identificadores del elemento diferentes: la ruta de acceso completa o el identificador del elemento.

Al realizar una llamada al método GetProperties, normalmente pasa como argumento la ruta de acceso completa del elemento para el que desea recuperar las propiedades. Puede establecer el encabezado SOAP para que la llamada al método le permita utilizar GetProperties pasando el identificador del elemento como un identificador utilizando ItemNamespaceHeader.

El ejemplo de código siguiente recupera los valores de las propiedades de elementos basadas en el identificador del elemento.

[!NOTA]

De forma predeterminada, no necesita establecer un valor para ItemNamespaceHeader si pasa al método GetProperties el nombre de ruta de acceso completa como identificador del elemento.

Imports System
Imports System.Collections
Imports myNamespace.MyReferenceName


Class Sample
   Sub Main()
      Dim rs As New ReportingService2005()
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials
      rs.Url = "http://<Server Name>/reportserver/ReportService2005.asmx"

      Dim items() As CatalogItem

      Try
         ' Need the ID property of items. Normally, you would already have 
         ' this stored somewhere.
         items = rs.ListChildren("/AdventureWorks Sample Reports", False)

         ' Set the item namespace header to be GUID-based
         rs.ItemNamespaceHeaderValue = New ItemNamespaceHeader()
         rs.ItemNamespaceHeaderValue.ItemNamespace = ItemNamespaceEnum.GUIDBased

         ' Call GetProperties with item ID.
         If Not (items Is Nothing) Then
            Dim item As CatalogItem
            For Each item In  items
               Dim properties As [Property]() = rs.GetProperties(item.ID, Nothing)
               Dim property As [Property]
               For Each property In  properties
                  Console.WriteLine(([property].Name + ": " + [property].Value))
               Next property
               Console.WriteLine()
            Next item
         End If

      Catch e As Exception
         Console.WriteLine((e.Message + ": " + e.StackTrace))
      End Try
   End Sub 'Main
End Class 'Sample
using System;
using System.Collections;
using myNamespace.MyReferenceName;


class Sample
{
   static void Main()
   {
   ReportingService2005 rs = new ReportingService2005();
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
      rs.Url = "http://<Server Name>/reportserver/ReportService2005.asmx";

      CatalogItem[] items;

      try
      {
         // Need the ID property of items. Normally, you would already have 
         // this stored somewhere.
         items = rs.ListChildren("/AdventureWorks Sample Reports", false);

         // Set the item namespace header to be GUID-based
         rs.ItemNamespaceHeaderValue = new ItemNamespaceHeader();
         rs.ItemNamespaceHeaderValue.ItemNamespace = ItemNamespaceEnum.GUIDBased;

         // Call GetProperties with item ID.
         if (items != null)
         {
            foreach( CatalogItem item in items)
            {
               Property[] properties = rs.GetProperties(item.ID, null);
               foreach (Property property in properties)
               {
                  Console.WriteLine(property.Name + ": " + property.Value);
               }
               Console.WriteLine();
            }
         }
      }

      catch (Exception e)
      {
         Console.WriteLine(e.Message);
      }
   }
}