ReportExecutionService.Render Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Verarbeitet einen bestimmten Bericht und rendert ihn im angegebenen Format.
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()
Parameter
- Format
- String
Das Format, in dem der Bericht gerendert werden soll. Dieses Argument ist einer Renderingerweiterung zugeordnet. Unterstützte Erweiterungen sind XML, NULL, CSV, IMAGE, PDF, HTML4.0, HTML3.2, MHTML, EXCEL und Word. Eine Liste unterstützter Erweiterungen kann durch Aufruf der ListRenderingExtensions()-Methode abgerufen werden.
- DeviceInfo
- String
Eine XML-Zeichenfolge, die den gerätespezifischen Inhalt enthält, der für die im Format
Parameter angegebene Renderingerweiterung erforderlich ist. DeviceInfo-Einstellungen müssen als interne Elemente eines XML-Elements DeviceInfo übergeben werden. Weitere Informationen zu Geräteinformationseinstellungen für bestimmte Ausgabeformate finden Sie unter Übergeben von Geräteinformationseinstellungen an Renderingerweiterungen.
- Extension
- String
[out] Die Dateierweiterung, die dem Ausgabedatenstrom entspricht.
- MimeType
- String
[out] Der MIME-Typ des gerenderten Berichts.
- Encoding
- String
[out] Die verwendete Codierung, wenn der Berichtsserver den Inhalt des Berichts rendert.
- Warnings
- Warning[]
[out] Ein Array von Warning-Objekten, die alle Warnungen beschreiben, die während der Berichtsverarbeitung ausgegeben wurden.
- StreamIds
- String[]
[out] Die Datenstrombezeichner. Diese IDs werden an die RenderStream(String, String, String, String, String)-Methode übergeben. Sie können hiermit die externen Ressourcen (Bilder usw.) rendern, die einem angegebenen Bericht zugeordnet sind.
Wenn die IMAGE-Renderingerweiterung verwendet wird, gibt die -Methode ein leeres Array in StreamIds
aus.
Gibt zurück
Ein Byte[] -Array des Berichts im angegebenen Format.
Beispiele
Um das folgende Codebeispiel zu kompilieren, müssen Sie auf die Reporting Services WSDL verweisen und bestimmte Namespaces importieren. Weitere Informationen finden Sie unter Kompilieren und Ausführen von Codebeispielen. Im folgenden Codebeispiel wird ein Bericht in MHTML gerendert und als MHT-Datei auf dem Datenträger gespeichert.
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);
}
}
}
Hinweise
In der folgenden Tabelle werden Header- und Berechtigungsinformationen zu diesem Vorgang dargestellt.
SOAP-Headerverwendung | (In) TrustedUserHeaderValue (In) ExecutionHeaderValue (Out) ServerInfoHeaderValue |
Erforderliche Berechtigungen im einheitlichen Modus | Auf dem Standard Bericht und allen Unterberichten: ReadProperties ANDExecuteAndView |
Erforderliche Berechtigungen im SharePoint-Modus | Auf dem Standard Bericht und allen Unterberichten:<xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> |
Render rendert einen verarbeiteten Bericht, der der im ExecutionInfo Header identifizierten Berichtsausführung zugeordnet ist. Wenn kein temporärer Momentaufnahme für den verarbeiteten Bericht im Ausführungszustand vorhanden ist, führt diese Methode den Bericht aus (wenn alle Anmeldeinformationen und Parameteranforderungen erfüllt sind), wodurch eine temporäre Momentaufnahme für den Ausführungszustand erstellt wird. Wenn der Bericht erneut verarbeitet wird, weil sich Parameterwerte von Nichtabfragen geändert haben, wird eine neue temporäre Momentaufnahme erstellt. Weitere Informationen zum Ausführungsstatus finden Sie unter Identifizieren des Ausführungsstatus.
Wenn die Ausführungsoptionen auf Cache oder Ausführung Momentaufnahme festgelegt sind, kann der Aufruf von Render eine vorhandene Momentaufnahme verwenden.
Wenn der Bericht auf Cache festgelegt ist und die angegebenen Parameterwerte und Anmeldeinformationen übereinstimmen, kann die zwischengespeicherte Kopie des Momentaufnahme geladen werden, anstatt den Bericht tatsächlich zu verarbeiten.
Wenn anmelde- und parameteranforderungen nicht erfüllt sind, gibt diese Methode einen Fehler zurück.
Nachfolgende Aufrufe von Render können verwendet werden, um zusätzliche Seiten des Berichts abzurufen, wenn die Renderingerweiterung das Angeben mehrerer Seiten unterstützt.
Eine Einschränkung der Render-Methode besteht darin, dass die Ausgabe nicht gestreamt werden kann, sodass sich die gesamte Datei im Arbeitsspeicher befinden muss.
Eine Erläuterung des Ausführungslebenszyklus finden Sie unter Identifizieren des Ausführungsstatus , der eine Beschreibung der schritte enthält, die zum Laden und Rendern eines Berichts erforderlich sind.