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 stellt ihn im angegebenen Format dar.
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 erstellt wird. Dieses Argument wird auf eine Rendering-Erweiterung abgebildet. 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 Methode ListRenderingExtensions() erhalten werden.
- DeviceInfo
- String
Eine XML-Zeichenkette, die den gerätespezifischen Inhalt enthält, der von der im Parameter Format angegebenen Rendering-Erweiterung gefordert wird. DeviceInfo-Einstellungen müssen als interne Elemente eines DeviceInfo XML-Elements übermittelt werden. Weitere Informationen zu Geräteinformationseinstellungen für bestimmte Ausgabeformate finden Sie unter Passing Device Information Settings to Rendering Extensions.
- Extension
- String
[aus] Die Dateiendung, die dem Ausgabestrom entspricht.
- MimeType
- String
[aus] Der MIME-Typ des gerenderten Berichts.
- Encoding
- String
[aus] Die Codierung, die beim Berichtsserver verwendet wird, stellt den Inhalt des Berichts dar.
- Warnings
- Warning[]
[aus] Ein Array von Warning Objekten, das alle Warnungen beschreibt, die während der Berichtsbearbeitung aufgetreten sind.
- StreamIds
- String[]
[aus] Die Stream-Identifikatoren. Diese IDs werden an die Methode RenderStream(String, String, String, String, String) weitergegeben. Sie können sie nutzen, um die externen Ressourcen (Bilder usw.) zu rendern, die einem bestimmten Bericht zugeordnet sind.
Wenn die IMAGE-Rendering-Erweiterung verwendet wird, gibt die Methode ein leeres Array in StreamIdsaus.
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 Namensräume importieren. Weitere Informationen finden Sie unter Beispiele für Kompilierung und Ausführung von Coden. Das folgende Codebeispiel stellt einen Bericht in MHTML dar und speichert ihn als .mht-Datei auf der Festplatte.
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
Die untenstehende Tabelle zeigt Header- und Berechtigungsinformationen zu dieser Operation.
| Verwendung von SOAP-Headern | (In) TrustedUserHeaderValue (In) ExecutionHeaderValue (Aus) ServerInfoHeaderValue |
| Erforderliche Berechtigungen im nativen Modus | Im Hauptbericht und allen Unterberichten: ReadProperties UND ExecuteAndView |
| Erforderliche Berechtigungen im SharePoint-Modus | Zum Hauptbericht und allen Unterberichten: <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> |
Render stellt einen bearbeiteten Bericht dar, der mit der Berichtsausführung im Header ExecutionInfo identifiziert ist. Wenn kein temporärer Snapshot für den verarbeiteten Bericht im Ausführungszustand existiert, führt diese Methode den Bericht aus (sofern alle Anforderungen an Zugangsdaten und Parameter erfüllt sind), was dazu führt, dass ein temporäres Snapshot für den Ausführungszustand erstellt wird. Wenn der Bericht erneut bearbeitet wird, weil sich die Werte der Nicht-Abfrageparameter geändert haben, wird ein neuer temporärer Schnappschuss erstellt. Weitere Informationen zum Ausführungszustand finden Sie unter Identifikation des Ausführungszustands.
Wenn die Ausführungsoptionen auf Cache oder Ausführungssnapshot gesetzt sind, kann der Aufruf einen Render bestehenden Snapshot verwenden.
Wenn der Bericht auf Cache gesetzt ist und die angegebenen Parameterwerte sowie Zugangsdaten übereinstimmen, kann die zwischengespeicherte Kopie des Snapshots geladen werden, anstatt den Bericht tatsächlich zu verarbeiten.
Wenn die Anforderungen an Zugangsdaten und Parameter nicht erfüllt sind, liefert diese Methode einen Fehler.
Nachfolgende Aufrufe können Render verwendet werden, um zusätzliche Seiten des Berichts abzurufen, wenn die Rendering-Erweiterung die Angabe mehrerer Seiten unterstützt.
Eine Einschränkung der Render-Methode ist, dass die Ausgabe nicht gestreamt werden kann, sodass die gesamte Datei im Speicher sein muss.
Bitte siehe Identifying Execution State für eine Diskussion des Ausführungslebenszyklus, die eine Beschreibung der notwendigen Schritte zum Laden und Erstellen eines Berichts enthält.