言語

ReportExecutionService.Render メソッド

定義

特定のレポートを処理し、指定された形式でレンダリングします。

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

[アウト]レポートサーバーがレポートの内容をレンダリングする際に使われるエンコーディング。

Warnings
Warning[]

[アウト]レポート処理中に発生した警告を表す Warning オブジェクトの配列です。

StreamIds
String[]

[アウト]ストリーム識別子です。 これらのIDは RenderStream(String, String, String, String, String) メソッドに渡されます。 これらのツールを使って、特定のレポートに関連付けられた外部リソース(画像など)をレンダリングできます。

IMAGEレンダリング拡張を使用する場合、メソッドは StreamIdsの空配列を出力します。

返品

Byte[]

指定された形式の レポートのバイト[] 配列です。

以下のコード例をコンパイルするには、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メソッドの制限は、出力がストリーミングできないため、ファイル全体がメモリ内に保管されていることです。

実行ライフサイクルについては「 実行状態の識別 」をご覧ください。レポートの読み込みとレンダリングに必要な手順の説明も含まれています。

適用対象