ReportExecutionService.Render メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
特定のレポートを処理し、指定された形式でレンダリングします。
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()
パラメーター
- Format
- String
報告書を提出する形式について。 この引数はレンダリング拡張に対応します。 対応している拡張には、XML、NULL、CSV、IMAGE、PDF、HTML4.0、HTML3.2、MHTML、EXCEL、Wordなどがあります。 サポートされている拡張のリストは、 ListRenderingExtensions() メソッドを呼び出すことで取得できます。
- DeviceInfo
- String
Formatパラメータで指定されたレンダリング拡張に必要なデバイス固有のコンテンツを含むXML文字列です。 DeviceInfoの設定は、DeviceInfoのXML要素の内部要素として渡されなければなりません。 特定の出力フォーマットにおけるデバイス情報設定の詳細については、「 Passing Device Information Settings to Rendering Extensions」をご覧ください。
- Extension
- String
[アウト]出力ストリームに対応するファイル拡張子。
- MimeType
- String
[アウト]レンダリングされたレポートのMIMEタイプです。
- Encoding
- String
[アウト]レポートサーバーがレポートの内容をレンダリングする際に使われるエンコーディング。
- StreamIds
- String[]
[アウト]ストリーム識別子です。 これらのIDは RenderStream(String, String, String, String, String) メソッドに渡されます。 これらのツールを使って、特定のレポートに関連付けられた外部リソース(画像など)をレンダリングできます。
IMAGEレンダリング拡張を使用する場合、メソッドは StreamIdsの空配列を出力します。
返品
指定された形式の レポートのバイト[] 配列です。
例
以下のコード例をコンパイルするには、Reporting ServicesのWSDLを参照し、特定の名前空間をインポートする必要があります。 詳細については 、「コード例のコンパイルと実行」をご覧ください。 以下のコード例は、MHTMLでレポートをレンダリングし、.mhtファイルとしてディスクに保存します。
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);
}
}
}
注釈
以下の表は、この操作のヘッダーおよび権限情報を示しています。
| SOAPヘッダーの使用 | (イン) TrustedUserHeaderValue (イン) ExecutionHeaderValue (アウト) ServerInfoHeaderValue |
| ネイティブモードの必要権限 | メインレポートおよびすべてのサブレポートでは、 ReadProperties AND ExecuteAndView |
| SharePointモードの必要権限 | メインレポートおよびすべてのサブレポートについて: <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> |
Render ExecutionInfoヘッダーで特定されたレポート実行に関連する処理済みレポートをレンダリングします。 実行状態に処理済みレポートの一時スナップショットが存在しない場合、このメソッドは(すべての資格情報およびパラメータ要件が満たされている場合)レポートを実行し、実行状態用の一時スナップショットが作成されます。 クエリ以外のパラメータ値が変更されたためにレポートが再処理された場合、新しい一時スナップショットが作成されます。 実行状態の詳細については、「 実行状態の識別」を参照してください。
実行オプションがキャッシュまたは実行スナップショットに設定されている場合、 Render の呼び出しは既存のスナップショットを使用することがあります。
レポートがキャッシュに設定されていて、提供されたパラメータ値と認証情報が一致している場合、スナップショットのキャッシュコピーが実際にレポートを処理する代わりに読み込まれることがあります。
認証情報やパラメータ要件が満たされていない場合、この方法はエラーを返します。
レンダリング拡張が複数ページの指定をサポートしている場合、その後の Render 呼び出しでレポートの追加ページを取得することができます。
Renderメソッドの制限は、出力がストリーミングできないため、ファイル全体がメモリ内に保管されていることです。
実行ライフサイクルについては「 実行状態の識別 」をご覧ください。レポートの読み込みとレンダリングに必要な手順の説明も含まれています。