次の方法で共有


IRenderingExtension インターフェイスを実装する

表示拡張機能では、実際のデータと組み合わされるレポート定義から出力結果を取得し、その結果データを使用可能な形式で表示します。 組み合わされたデータの変換と書式設定は、IRenderingExtension を実装する共通言語ランタイム (CLR) クラスを使用して実行されます。 これにより、オブジェクト モデルは、ビューアーやプリンターなどの出力先で使用できる出力形式に変換されます。

IRenderingExtension には、コーディングが必要なメソッドが 3 つあります。

  • Render : レポートを表示します。

  • RenderStream : レポートの特定のストリームを表示します。

  • GetRenderingResource - アイコンなど、レポートに必要な追加情報を取得します。

ここでは、これらのメソッドについて詳しく説明します。

Render メソッド

Render メソッドには、次のオブジェクトを表す引数が含まれます。

  • report: 表示するレポート。 このオブジェクトには、レポートのプロパティ、データ、およびレイアウト情報が含まれます。 レポートは、レポート オブジェクト モデル ツリーのルートです。

  • ServerParameters: 文字列辞書オブジェクト、およびレポート サーバーのパラメーター (存在する場合) が含まれます。

  • デバイス設定 を含む deviceInfo パラメーター。 詳細については、「デバイス情報の設定を表示拡張機能に渡す」を参照してください

  • レンダリング先のクライアントに関する情報をNameValueCollection持つディクショナリ オブジェクトを含む clientCapabilities パラメーター。

  • レンダリング結果に 関する情報を含む RenderProperties パラメーター。

  • createAndRegisterStream: 表示するストリームを取得するために呼び出すデリゲート関数。

deviceInfo パラメーター

deviceInfo パラメーターには、レポート パラメーターではなく、表示パラメーターが含まれます。 表示パラメーターは表示拡張機能に渡されます。 deviceInfo 値は、レポート サーバーによって NameValueCollection オブジェクトに変換されます。 deviceInfo パラメーターのアイテムは、大文字と小文字を区別しない値として扱われます。 URL アクセスによる表示要求が行われると、形式 rc:key=value の URL パラメーターが deviceInfo 辞書オブジェクトのキーと値のペアに変換されます。 ブラウザー検出コードは、clientCapabilities 辞書のEcmaScriptVersion、JavaScript、MajorVersion、MinorVersion、Win32、Type および AcceptLanguage の項目も提供しています。 表示拡張機能は、理解できない deviceInfo パラメーター内の名前と値のペアを無視します。 次のコード サンプルは、アイコンを取得する GetRenderingResource メソッドを示します。

public void GetRenderingResource (CreateStream createStreamCallback, NameValueCollection deviceInfo)  
{  
    string[] iconTagValues = deviceInfo.GetValues("Icon");  
    if ((iconTagValues != null) && (iconTagValues.Length > 0) )  
    {  
        // Create a stream to output to.  
        Stream outputStream = createStreamCallback(m_iconResourceName, "gif", null, "image/gif", false);  
        // Get the GIF image for one of the buttons on the toolbar  
        Image requiredImage = (Image) m_resourcemanager.GetObject(m_iconResourceName  
        // Write the image to the output stream  
        requiredImage.Save(outputStream, requiredImage.RawFormat);  
    }  
    return;  
}  

RenderStream メソッド

RenderStream メソッドは、レポート内の特定のストリームを表示します。 すべてのストリームは最初 Render の呼び出し中に作成されますが、ストリームは最初はクライアントに返されません。 このメソッドは、HTML レンダリングの画像などのセカンダリ ストリームや、Image/EMF などのマルチページ レンダリング拡張機能の他のページに使用されます。

GetRenderingResource メソッド

GetRenderingResource メソッドは、レポート全体を表示せずに情報を取得します。 レポート自体を表示する必要のない情報がレポートに必要な場合があります。 たとえば、表示拡張機能に関連付けられたアイコンが必要な場合、 タグ 1 つを含む deviceInfo パラメーターを使用します。 このような場合に、GetRenderingResource メソッドを使用できます。