ReportExecutionService.Render Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Procesa un informe específico y lo muestra en el formato especificado.
public:
cli::array <System::Byte> ^ Render(System::String ^ Format, System::String ^ DeviceInfo, [Runtime::InteropServices::Out] System::String ^ % Extension, [Runtime::InteropServices::Out] System::String ^ % MimeType, [Runtime::InteropServices::Out] System::String ^ % Encoding, [Runtime::InteropServices::Out] cli::array <ReportExecution2005::Warning ^> ^ % Warnings, [Runtime::InteropServices::Out] cli::array <System::String ^> ^ % StreamIds);
public byte[] Render(string Format, string DeviceInfo, out string Extension, out string MimeType, out string Encoding, out ReportExecution2005.Warning[] Warnings, out string[] StreamIds);
member this.Render : string * string * string * string * string * Warning[] * String[] -> byte[]
Public Function Render (Format As String, DeviceInfo As String, ByRef Extension As String, ByRef MimeType As String, ByRef Encoding As String, ByRef Warnings As Warning(), ByRef StreamIds As String()) As Byte()
Parámetros
- Format
- String
El formato en el que se debe presentar el informe. Este argumento se corresponde con una extensión de renderizado. Las extensiones soportadas incluyen XML, NULL, CSV, IMAGE, PDF, HTML4.0, HTML3.2, MHTML, Excel y Word. Se puede obtener una lista de extensiones soportadas llamando al ListRenderingExtensions() método.
- DeviceInfo
- String
Una cadena XML que contiene el contenido específico del dispositivo que requiere la extensión de renderizado especificada en el Format parámetro. La configuración de DeviceInfo debe pasarse como elementos internos de un elemento XML de DeviceInfo. Para más información sobre la configuración de información de dispositivos para formatos de salida específicos, consulte Pasar Configuración de Información de Dispositivo a Extensiones de Renderizado.
- Extension
- String
[fuera] La extensión del archivo correspondiente al flujo de salida.
- MimeType
- String
[fuera] El tipo MIME del informe renderizado.
- Encoding
- String
[fuera] La codificación utilizada cuando el servidor de informes muestra el contenido del informe.
- Warnings
- Warning[]
[fuera] Un conjunto de Warning objetos que describe cualquier advertencia que haya ocurrido durante el procesamiento de informes.
- StreamIds
- String[]
[fuera] Los identificadores de la corriente. Estos IDs se pasan al RenderStream(String, String, String, String, String) método. Puedes usarlos para renderizar los recursos externos (imágenes, etc.) asociados a un informe determinado.
Si se utiliza la extensión de renderizado IMAGE, el método genera un array vacío en StreamIds.
Devoluciones
Un array de bytes[] del informe en el formato especificado.
Ejemplos
Para compilar el siguiente ejemplo de código, debes consultar el WSDL de Reporting Services e importar ciertos espacios de nombres. Para más información, consulte Ejemplos de Compilación y Ejecución de Código. El siguiente ejemplo de código renderiza un informe en MHTML y lo guarda como un archivo .mht en disco.
Imports System
Imports System.IO
Imports System.Web.Services.Protocols
Imports myNamespace.MyReferenceName
Class Sample
Public Shared Sub Main()
Dim rs As New ReportExecutionService()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
rs.Url = "http://myserver/reportserver/ReportExecution2005.asmx"
' Render arguments
Dim result As Byte() = Nothing
Dim reportPath As String = "/AdventureWorks Sample Reports/Employee Sales Summary "
Dim format As String = "MHTML"
Dim historyID As String = Nothing
Dim devInfo As String = "<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>"
' Prepare report parameter.
Dim parameters(2) As ParameterValue
parameters(0) = New ParameterValue()
parameters(0).Name = "EmpID"
parameters(0).Value = "288"
parameters(1) = New ParameterValue()
parameters(1).Name = "ReportMonth"
parameters(1).Value = "6" ' June
parameters(2) = New ParameterValue()
parameters(2).Name = "ReportYear"
parameters(2).Value = "2004"
Dim credentials As DataSourceCredentials() = Nothing
Dim showHideToggle As String = Nothing
Dim encoding As String = ""
Dim mimeType As String = ""
Dim warnings As Warning() = Nothing
Dim reportHistoryParameters As ParameterValue() = Nothing
Dim streamIDs As String() = Nothing
Dim execInfo As New ExecutionInfo
Dim execHeader As New ExecutionHeader()
Dim SessionId As String
Dim extension As String = ""
rs.ExecutionHeaderValue = execHeader
execInfo = rs.LoadReport(reportPath, historyID)
rs.SetExecutionParameters(parameters, "en-us")
SessionId = rs.ExecutionHeaderValue.ExecutionID
Console.WriteLine("SessionID: {0}", rs.ExecutionHeaderValue.ExecutionID)
Try
result = rs.Render(format, devInfo, extension, _
encoding, mimeType, warnings, streamIDs)
execInfo = rs.GetExecutionInfo()
Console.WriteLine("Execution date and time: {0}", execInfo.ExecutionDateTime)
Catch e As SoapException
Console.WriteLine(e.Detail.OuterXml)
End Try
' Write the contents of the report to an MHTML file.
Try
Dim stream As FileStream = File.Create("report.mht", result.Length)
Console.WriteLine("File created.")
stream.Write(result, 0, result.Length)
Console.WriteLine("Result written to the file.")
stream.Close()
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub 'Main
End Class
using System;
using System.IO;
using System.Web.Services.Protocols;
using myNamespace.MyReferenceName;
class Sample
{
static void Main(string[] args)
{
ReportExecutionService rs = new ReportExecutionService();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = "http://myserver/reportserver/ReportExecution2005.asmx";
// Render arguments
byte[] result = null;
string reportPath = "/AdventureWorks Sample Reports/Employee Sales Summary";
string format = "MHTML";
string historyID = null;
string devInfo = @"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";
// Prepare report parameter.
ParameterValue[] parameters = new ParameterValue[3];
parameters[0] = new ParameterValue();
parameters[0].Name = "EmpID";
parameters[0].Value = "288";
parameters[1] = new ParameterValue();
parameters[1].Name = "ReportMonth";
parameters[1].Value = "6"; // June
parameters[2] = new ParameterValue();
parameters[2].Name = "ReportYear";
parameters[2].Value = "2004";
DataSourceCredentials[] credentials = null;
string showHideToggle = null;
string encoding;
string mimeType;
string extension;
Warning[] warnings = null;
ParameterValue[] reportHistoryParameters = null;
string[] streamIDs = null;
ExecutionInfo execInfo = new ExecutionInfo();
ExecutionHeader execHeader = new ExecutionHeader();
rs.ExecutionHeaderValue = execHeader;
execInfo = rs.LoadReport(reportPath, historyID);
rs.SetExecutionParameters(parameters, "en-us");
String SessionId = rs.ExecutionHeaderValue.ExecutionID;
Console.WriteLine("SessionID: {0}", rs.ExecutionHeaderValue.ExecutionID);
try
{
result = rs.Render(format, devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs);
execInfo = rs.GetExecutionInfo();
Console.WriteLine("Execution date and time: {0}", execInfo.ExecutionDateTime);
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.OuterXml);
}
// Write the contents of the report to an MHTML file.
try
{
FileStream stream = File.Create("report.mht", result.Length);
Console.WriteLine("File created.");
stream.Write(result, 0, result.Length);
Console.WriteLine("Result written to the file.");
stream.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
Comentarios
La siguiente tabla muestra la información sobre cabeceras y permisos sobre esta operación.
| Uso de la cabecera SOAP | (En) TrustedUserHeaderValue (En) ExecutionHeaderValue (Fuera) ServerInfoHeaderValue |
| Permisos requeridos en modo nativo | En el informe principal y en todos los subinformes: ReadProperties Y ExecuteAndView |
| Permisos requeridos en el modo SharePoint | En el informe principal y en todos los subinformes: <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> |
Render muestra un informe procesado asociado a la ejecución del informe identificado en la ExecutionInfo cabecera. Si no existe una instantánea temporal para el informe procesado en estado de ejecución, este método ejecutará el informe (si se cumplen todos los requisitos de credenciales y parámetros), lo que resultará en la creación de una instantánea temporal para el estado de ejecución. Si el informe se reprocesa porque los valores de los parámetros no consultados han cambiado, se crea una nueva instantánea temporal. Para más información sobre el estado de ejecución, consulte Identificación del estado de ejecución.
Si las opciones de ejecución están configuradas como caché o instantánea de ejecución, la llamada puede Render usar una instantánea existente.
Si el informe está configurado en caché y los valores de parámetros y credenciales proporcionados coinciden, la copia en caché de la instantánea puede cargarse en lugar de procesar realmente el informe.
Si no se cumplen los requisitos de credenciales y parámetros, este método devolverá un error.
Las llamadas posteriores pueden Render usarse para obtener páginas adicionales del informe si la extensión de renderizado permite especificar varias páginas.
Una limitación del método Render es que la salida no puede transmitirse, por lo que todo el archivo debe estar en memoria.
Por favor, consulte Identificación del Estado de Ejecución para una discusión sobre el ciclo de vida de la ejecución, que incluye una descripción de los pasos necesarios para cargar y generar un informe.