次の方法で共有


IRenderingExtension インターフェイスの実装

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

IRenderingExtensionには、コード化する必要がある 3 つのメソッドがあります。

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

  • RenderStream - レポートから特定のストリームをレンダリングします。

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

以降のセクションでは、これらのメソッドについて詳しく説明します。

Render メソッド

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

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

  • 文字列ディクショナリ オブジェクトを含む ServerParameters と、レポート サーバーのパラメーター (存在する場合)。

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

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

  • レンダリング結果に関する情報を含む RenderProperties

  • createAndRegisterStream は、レンダリングするストリームを取得するために呼び出されるデリゲート関数です。

deviceInfo パラメーター

deviceInfo パラメーターには、レポート パラメーターではなく、レンダリング パラメーターが含まれています。 これらのレンダリング パラメーターは、表示拡張機能に渡されます。 deviceInfo 値は、レポート サーバーによってNameValueCollection オブジェクトに変換されます。 deviceInfo パラメーター内の項目は、大文字と小文字を区別しない値として扱われます。 URL アクセスの結果としてレンダリング要求が送信された場合、 rc:key=value 形式の URL パラメーターは deviceInfo ディクショナリ オブジェクトのキーと値のペアに変換されます。 ブラウザー検出コードには、ecmaScriptVersion、JavaScript、MajorVersion、MinorVersion、Win32、Type、AcceptLanguage という 項目も clientCapabilities ディクショナリに含まれています。 表示拡張機能で認識されない 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 つのタグ <Icon> を含む deviceInfo パラメーターを使用します。 このような場合は、 GetRenderingResource メソッドを使用できます。

こちらもご覧ください

レンダリング拡張機能の実装
表示拡張機能の概要