RSReportServer.Configでレンダリング拡張パラメータをカスタマイズする

RSReportServerの設定ファイルでレンダリング拡張パラメータを指定すれば、Reporting Servicesレポートサーバー上で動作するレポートのデフォルトレンダリング動作を上書きできます。 レンダリング拡張パラメータを変更して、以下の目的を達成できます:

  • レポートツールバーのエクスポートリストでレンダリング拡張名の表示方法を変更したり(例えば「Web archive」を「MHTML」に変更したり)、名前を別の言語にローカライズしたりします。

  • 同じレンダリング拡張を複数作成し、異なるレポート表示オプション(例:画像レンダリング拡張の縦向きおよび横向きバージョン)をサポートします。

  • デフォルトのレンダリング拡張パラメータを異なる値に変更してください(例えば、画像レンダリング拡張はTIFFをデフォルト出力形式として使っていますが、拡張パラメータをEMFに変更できます)。

レンダリング拡張パラメータの変更はレポートサーバー上のレンダリング操作にのみ影響します。 レポート デザイナーのレポートプレビューでレンダリング拡張設定をオーバーライドすることはできません。

設定ファイルでレンダリング拡張パラメータを指定すると、レンダリング拡張全体に影響します。 設定ファイル内の設定は、特定のレンダリング拡張子が使われるたびにデフォルト値の代わりに使われます。 特定のレポートやレンダリング操作のレンダリング拡張パラメータを設定したい場合は、 Render メソッドを使ってプログラム的にデバイス情報を指定するか、レポートURL上でデバイス情報設定を指定する必要があります。 レンダリング操作のデバイス情報設定の指定方法やデバイス情報設定の完全な一覧を見るには、「レンダリング 拡張にデバイス情報設定を渡す」をご覧ください。

RSReportServer.config を見つけて修正します

レポート出力フォーマットの設定は、RSReportServer.config ファイル内のレンダリング拡張パラメータとして指定されています。 設定ファイルでレンダリング拡張パラメータを指定するには、レンダリングパラメータを設定するXML構造の定義方法を知っている必要があります。 変更できるXML構造は2つあります:

  • OverrideNames要素は、レンダリング拡張の表示名と言語を定義します。

  • DeviceInfoのXML構造は、レンダリング拡張で使用されるデバイス情報の設定を定義します。 ほとんどのレンダリング拡張パラメータはデバイス情報設定として指定されています。

テキストエディタを使ってファイルを修正できます。 RSReportServer.config ファイルは\Reporting Services\Report Server\Binフォルダにあります。 設定ファイルの修正についての詳細は、「Reporting Services設定ファイルの修正(RSreportserver.config)」をご覧ください。

表示名の変更

レンダリング拡張機能の表示名はレポートツールバーのエクスポートリストに表示されます。 デフォルトの表示名の例としては、Web archive、TIFFファイル、Acrobat(PDF)ファイルなどがあります。 設定ファイルで OverrideNames 要素を指定することで、デフォルトの表示名をカスタム値に置き換えることができます。 さらに、単一のレンダリング拡張を2つのインスタンスで定義する場合は、 OverrideNames 要素を使ってエクスポートリスト内の各インスタンスを区別できます。

表示名はローカライズされているため、デフォルトの表示名をカスタム値に置き換える場合は Language 属性を設定する必要があります。 そうでなければ、指定した名前は無視されます。 設定した言語値はレポートサーバーのコンピュータに対して有効でなければなりません。 例えば、レポートサーバーがフランスのオペレーティングシステム上で動作している場合、属性値として「fr-FR」を指定すべきです。

以下の例は、英語のレポートサーバーでカスタム名前を提供する方法を示しています。

<Extension Name="XML" Type="Microsoft.ReportingServices.Rendering.DataRenderer.XmlDataReport,Microsoft.ReportingServices.DataRendering">  
   <OverrideNames>  
     <Name Language="en-US">My Custom Display Name for XML Rendering</Name>  
   </OverrideNames>  
</Extension>  

デバイス情報設定の変更

レポートサーバーに既に展開されているレンダリング拡張で使われているデフォルトのデバイス情報設定を変更するには、設定ファイル内に DeviceInfo のXML構造を入力しなければなりません。 すべてのレンダリング拡張は、その拡張機能固有のデバイス情報設定をサポートしています。 デバイス情報設定の完全なリストを見るには、「 レンダリング拡張へのデバイス情報設定の渡し」をご覧ください。

以下の例は、画像レンダリング拡張のデフォルト設定を変更するXML構造と構文のイラストを示しています。

<Render>  
    <Extension Name="IMAGE (EMF)" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRendering">  
        <OverrideNames>  
            <Name Language="en-US">Image (EMF)</Name>  
        </OverrideNames>  
        <Configuration>  
            <DeviceInfo>  
                <ColorDepth>32</ColorDepth>  
                <DpiX>300</DpiX>  
                <DpiY>300</DpiY>  
                <OutputFormat>EMF</OutputFormat>  
            </DeviceInfo>  
        </Configuration>  
    </Extension>  
</Render>  

レンダリング拡張のために複数のエントリを設定する

同じレンダリング拡張機能を複数作成して、異なるレポート表示オプションをサポートすることができます。 定義した各インスタンスは異なるパラメータ値の組み合わせを持つことができます。 既存のレンダリング拡張の新しいインスタンスを定義する際は、以下のことを必ず行ってください。

  • 拡張に一意の名前を指定してください。

    各インスタンスは Name 属性に一意の値を持つ必要があります。 以下の例では、「IMAGE(EMF Landscape)」と「IMAGE(EMF Portrait)」という名前を使って、両者のインスタンスを区別しています。

    すでに展開されているレンダリング拡張機能の名前を変更する際は注意してください。 レンダリング拡張を指定する開発者は、プログラム的に拡張名を使って特定のレンダリング操作にどのインスタンスを使うかを特定します。 レポートサーバー上でカスタムReporting Servicesアプリケーションを実行している場合、既存の拡張名を変更したり新しい拡張名を追加した場合、開発者に知らせておくようにしてください。

  • ユーザーが各出力フォーマットの違いを理解できるように、固有の表示名を指定しましょう。

    同じ拡張機能の複数のバージョンを設定する場合は、 OverrideNamesの値を付けて各バージョンに固有の名前を付けることができます。 そうでなければ、レポートツールバーのエクスポートオプションリストですべてのバージョンが同じ名前で表示されます。

以下の例では、既定の Image レンダリング拡張機能(TIFF 出力を生成します)を使用して、1つのインスタンスでは Portrait モードで EMF を出力し、もう1つのインスタンスでは Landscape モードでレポートを EMF で出力する方法を示します。 各拡張名は一意であることに注目してください。 この例をテストする際は、表示・非表示オプション、行列、ドリルスルーリンクなどのインタラクティブ機能が含まれていないレポートを選ぶことを忘れないでください(インタラクティブ機能は画像レンダリング拡張機能では機能しません):

<Render>  
    <Extension Name="IMAGE (EMF Landscape)" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRendering">  
        <OverrideNames>  
            <Name Language="en-US">EMF in Landscape Mode</Name>  
        </OverrideNames>  
        <Configuration>  
            <DeviceInfo>  
                <OutputFormat>EMF</OutputFormat>  
                <PageHeight>8.5in</PageHeight>  
                <PageWidth>11in</PageWidth>  
            </DeviceInfo>  
        </Configuration>  
    </Extension>  
    <Extension Name="IMAGE (EMF Portrait)" Type="Microsoft.ReportingServices.Rendering.ImageRenderer.ImageRenderer,Microsoft.ReportingServices.ImageRendering">  
        <OverrideNames>  
            <Name Language="en-US">EMF in Portrait Mode</Name>  
        </OverrideNames>  
        <Configuration>  
            <DeviceInfo>  
                <OutputFormat>EMF</OutputFormat>  
                <PageHeight>11in</PageHeight>  
                <PageWidth>8.5in</PageWidth>  
            </DeviceInfo>  
        </Configuration>  
    </Extension>  
</Render>