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

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

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

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

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

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

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

Render メソッド

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

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

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

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

  • clientCapabilities : 表示先クライアントに関する情報を格納している NameValueCollection 辞書オブジェクトを含むパラメーター。

  • 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 表示における画像などのセカンダリ ストリームや、画像 (EMF) などの複数ページ表示拡張機能の追加ページに使用します。

GetRenderingResource メソッド

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

関連項目

概念

表示拡張機能の実装

表示拡張機能の概要