ReportingService2005.CreateReport Método

Definición

Agrega un nuevo informe a la base de datos del servidor de informes.

public:
 cli::array <ReportService2005::Warning ^> ^ CreateReport(System::String ^ Report, System::String ^ Parent, bool Overwrite, cli::array <System::Byte> ^ Definition, cli::array <ReportService2005::Property ^> ^ Properties);
public ReportService2005.Warning[] CreateReport (string Report, string Parent, bool Overwrite, byte[] Definition, ReportService2005.Property[] Properties);
member this.CreateReport : string * string * bool * byte[] * ReportService2005.Property[] -> ReportService2005.Warning[]
Public Function CreateReport (Report As String, Parent As String, Overwrite As Boolean, Definition As Byte(), Properties As Property()) As Warning()

Parámetros

Report
String

Nombre del nuevo informe.

Parent
String

Dirección URL completa de la carpeta primaria a la que se va a agregar el informe.

Overwrite
Boolean

Expresión Boolean que indica si un informe existente con el mismo nombre y en la ubicación especificada se debe sobrescribir.

Definition
Byte[]

Definición de informe que se va a publicar en el servidor de informes, que es el contenido de un archivo .rdl. Los datos XML se definen mediante el http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition/ lenguaje de definición de informe .

Properties
Property[]

Matriz de objetos Property que contiene los nombres y valores de propiedad que se van a establecer para el informe.

Devoluciones

Matriz de objetos Warning que describe las advertencias que se produjeron al validar la definición de informe.

Ejemplos

Para compilar este ejemplo de código, debe hacer referencia al Reporting Services WSDL e importar determinados espacios de nombres. Para obtener más información, vea Compilar y ejecutar ejemplos de código. En el ejemplo de código siguiente se publica un informe en forma de archivo rdl (Lenguaje de definición de informes) en una base de datos del servidor de informes.

Imports System  
Imports System.IO  
Imports System.Web.Services.Protocols  

Class Sample  
   Public Shared Sub Main()  
      Dim rs As New ReportingService2005()  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials  

      Dim definition As [Byte]() = Nothing  
      Dim warnings As Warning() = Nothing  
      Dim name As String = "MyReport"  

      Try  
         Dim stream As FileStream = File.OpenRead("MyReport.rdl")  
         definition = New [Byte](stream.Length - 1) {}  
         stream.Read(definition, 0, CInt(stream.Length - 1))  
         stream.Close()  

      Catch e As IOException  
         Console.WriteLine(e.Message)  
      End Try  

      Try  
         warnings = rs.CreateReport(name, "/Samples", False, definition, Nothing)  

         If Not (warnings Is Nothing) Then  
            Dim warning As Warning  
            For Each warning In  warnings  
               Console.WriteLine(warning.Message)  
            Next warning  

         Else  
            Console.WriteLine("Report: {0} created successfully with no warnings", name)  
         End If  

      Catch e As SoapException  
         Console.WriteLine(e.Detail.InnerXml.ToString())  
      End Try  
   End Sub 'Main   
End Class 'Sample  
using System;  
using System.IO;  
using System.Web.Services.Protocols;  

class Sample  
{  
   public static void Main()  
   {  
      ReportingService2005 rs = new ReportingService2005();  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  

      Byte[] definition = null;  
      Warning[] warnings = null;  
      string name = "MyReport";  

      try  
      {  
         FileStream stream = File.OpenRead("MyReport.rdl");  
         definition = new Byte[stream.Length];  
         stream.Read(definition, 0, (int) stream.Length);  
         stream.Close();  
      }  

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

      try  
      {  
         warnings = rs.CreateReport(name, "/Samples", false, definition, null);  

         if (warnings != null)  
         {  
            foreach (Warning warning in warnings)  
            {  
               Console.WriteLine(warning.Message);  
            }  
         }  

         else  
            Console.WriteLine("Report: {0} created successfully with no warnings", name);  
      }  

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

   }  
}  

Comentarios

En la siguiente tabla se muestra la información de encabezado y de permisos de esta operación.

Encabezados SOAP (In) BatchHeaderValue

(Out) ServerInfoHeaderValue
Permisos necesarios Creación de un nuevo informe: CreateReport en Parent AND ReadProperties en los orígenes de datos del informe Y ReadProperties en los conjuntos de datos del informe

Actualización de un informe existente: en AND en (si Properties contiene propiedades) Y UpdateProperties en los orígenes de datos del informe Y UpdateProperties en los conjuntos de datos del informe ReportUpdatePropertiesReportUpdateReportDefinition

La longitud del Parent parámetro no puede superar los 260 caracteres; de lo contrario, se produce una excepción SOAP con el código de error rsItemLengthExceeded.

El Parent parámetro no puede ser nulo ni estar vacío ni contener los siguientes caracteres reservados: : ? ; @ & = + $ , \ * > < | . ". Puede usar el carácter de barra diagonal (/) para separar los elementos del nombre de ruta de acceso completo de la carpeta, pero no puede usarlo al final del nombre de la carpeta.

Si se producen errores, no se crea el informe.

Al agregar un informe a la base de datos del servidor de informes, se modifican las ModifiedBy propiedades y ModifiedDate de la carpeta primaria.

Se aplica a