Compartilhar via


ReportingService2005.CreateReport Método

Definição

Adiciona um novo relatório ao banco de dados do servidor de relatório.

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

O nome do novo relatório.

Parent
String

A URL totalmente qualificada da pasta pai na qual adicionar o relatório.

Overwrite
Boolean

Uma Boolean expressão que indica se um relatório existente com o mesmo nome no local especificado deve ser substituído.

Definition
Byte[]

A definição do relatório a ser publicado no servidor de relatório, que é o conteúdo de um arquivo .rdl. Os dados XML são definidos pela http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition/ Linguagem de Definição de Relatório .

Properties
Property[]

Uma matriz de objetos Property que contém os nomes e os valores de propriedades a serem definidos para o relatório.

Retornos

Uma matriz de objetos Warning que descreve todos os avisos ocorridos na validação da definição de relatório.

Exemplos

Para compilar esse exemplo de código, você deve referenciar o WSDL Reporting Services e importar determinados namespaces. Para obter mais informações, consulte Compilando e executando exemplos de código. O exemplo de código a seguir publica um relatório na forma de um arquivo RDL (Linguagem de Definição de Relatório) em um banco de dados do servidor de relatório.

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());  
      }  

   }  
}  

Comentários

A tabela a seguir mostra o cabeçalho e as informações de permissão sobre esta operação.

Cabeçalhos SOAP (In) BatchHeaderValue

(Out) ServerInfoHeaderValue
Permissões necessárias Criando um novo relatório: CreateReport em Parent AND ReadProperties nas fontes de dados do relatório E ReadProperties nos conjuntos de dados do relatório

Atualizando um relatório existente: em AND UpdateProperties em Report (se Properties contiver propriedades) E UpdateProperties nas fontes de dados do relatório E UpdateProperties nos conjuntos Report de dados do relatório UpdateReportDefinition

O comprimento do Parent parâmetro não pode exceder 260 caracteres; caso contrário, uma exceção SOAP é gerada com o código de erro rsItemLengthExceeded.

O Parent parâmetro não pode ser nulo ou vazio ou conter os seguintes caracteres reservados: : ? ; @ & = + $ , \ * > < | . ". Você pode usar o caractere de barra (/) para separar itens no nome do caminho completo da pasta, mas não pode usá-lo no final do nome da pasta.

Se ocorrerem erros, o relatório não será criado.

Adicionar um relatório ao banco de dados do servidor de relatório modifica as ModifiedBy propriedades e ModifiedDate da pasta pai.

Aplica-se a