ReportingService2005.CreateReport Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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órioAtualizando 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.