ReportExecutionService.Render Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Traite un rapport spécifique et l’affiche dans le format spécifié.
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()
Paramètres
- Format
- String
Le format dans lequel il faut afficher le rapport. Cet argument correspond à une extension de rendu. Les extensions prises en charge incluent XML, NULL, CSV, IMAGE, PDF, HTML4.0, HTML3.2, MHTML, Excel et Word. Une liste d’extensions prises en charge peut être obtenue en appelant la ListRenderingExtensions() méthode.
- DeviceInfo
- String
Une chaîne XML contenant le contenu spécifique à l’appareil requis par l’extension de rendu spécifiée dans le Format paramètre. Les paramètres DeviceInfo doivent être passés comme éléments internes d’un élément XML DeviceInfo. Pour plus d’informations sur les paramètres d’information des appareils pour certains formats de sortie, voir Passer les paramètres d’information des périphériques aux extensions de rendu.
- Extension
- String
[dehors] L’extension de fichier correspondant au flux de sortie.
- MimeType
- String
[dehors] Le type MIME du rapport rendu.
- Encoding
- String
[dehors] L’encodage utilisé lors du serveur de rapports affiche le contenu du rapport.
- Warnings
- Warning[]
[dehors] Un tableau d’objets Warning qui décrit les avertissements survenus lors du traitement du rapport.
- StreamIds
- String[]
[dehors] Les identifiants de ruisseau. Ces identifiants sont transmis à la RenderStream(String, String, String, String, String) méthode. Vous pouvez les utiliser pour afficher les ressources externes (images, etc.) associées à un rapport donné.
Si l’extension de rendu IMAGE est utilisée, la méthode produit un tableau vide dans StreamIds.
Retours
Un tableau Byte[] du rapport dans le format spécifié.
Exemples
Pour compiler l’exemple de code suivant, vous devez référencer le WSDL de Reporting Services et importer certains espaces de noms. Pour plus d’informations, voir Exemples de compilation et exécution de code. L’exemple de code suivant affiche un rapport en MHTML et l’enregistre sous forme de fichier .mht sur disque.
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);
}
}
}
Remarques
Le tableau ci-dessous présente les informations sur l’en-tête et les autorisations concernant cette opération.
| Utilisation de l’en-tête SOAP | (En) TrustedUserHeaderValue (En) ExecutionHeaderValue (Dehors) ServerInfoHeaderValue |
| Mode natif : autorisations requises | Sur le rapport principal et tous les sous-rapports : ReadProperties ET ExecuteAndView |
| Permissions requises en mode SharePoint | Sur le rapport principal et tous les sous-rapports : <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> |
Render affiche un rapport traité associé à l’exécution du rapport identifiée dans l’en-tête ExecutionInfo . Si aucun instantané temporaire n’existe pour le rapport traité dans l’état d’exécution, cette méthode exécutera le rapport (si toutes les exigences d’identifiants et paramètres sont remplies), ce qui entraîne la création d’un instantané temporaire pour l’état d’exécution. Si le rapport est retraité parce que les valeurs non liées aux paramètres de requête ont changé, un nouvel instantané temporaire est créé. Pour plus d’informations sur l’état d’exécution, voir Identifier l’état d’exécution.
Si les options d’exécution sont définies en cache ou en snapshot d’exécution, l’appel peut Render utiliser un snapshot existant.
Si le rapport est mis en cache et que les valeurs de paramètres et identifiants fournis correspondent, la copie mise en cache de l’instantané peut être chargée au lieu de traiter réellement le rapport.
Si les exigences de crédentiel et de paramètres ne sont pas remplies, cette méthode renverra une erreur.
Les appels suivants Render peuvent être utilisés pour récupérer des pages supplémentaires du rapport si l’extension de rendu permet de spécifier plusieurs pages.
Une limitation de la méthode Render est que la sortie ne peut pas être diffusée en streaming, donc tout le fichier doit être en mémoire.
Veuillez consulter Identifier l’état d’exécution pour une discussion sur le cycle de vie d’exécution, qui inclut une description des étapes nécessaires pour charger et afficher un rapport.