レンダリング拡張とは、レポートサーバーのコンポーネントまたはモジュールで、レポートデータやレイアウト情報をデバイス固有の形式に変換するものです。 SQL Server Reporting Servicesには、HTML、Excel、Word、PowerPoint、CSVまたはテキスト、XML、画像、データフィード、PDFなど複数のレンダリング拡張が含まれています。 他のレンダリング拡張機能を作成して、他の形式のレポートを生成することもできます。
Note
利用可能なレンダリング拡張機能を確認するには、RSReportServer.config ファイル内のインストール済み拡張機能一覧を確認できます。
以下の表は、Reporting Servicesに含まれるレンダリング拡張について説明します。
| 拡張機能の名前 | 説明 |
|---|---|
| WORDOPENXML | Microsoft WordでレポートをDOCXファイルとしてレンダリングします。 レポートツールバーのエクスポートドロップダウンリストでフォーマットはWordとして表示されています。 |
| 言葉 | Microsoft WordでレポートをDOCファイルとしてレンダリングします。 この形式はレポートツールバーのエクスポートドロップダウンリストには表示されません。これは後方互換性のために含まれています。 |
| EXCELOPENXML | Microsoft ExcelでレポートをXLSXファイルとしてレンダリングします。 レポートツールバーのエクスポートドロップダウンリストには、Excelの形式が表示されます。 |
| エクセル | Microsoft ExcelでレポートをXLSファイルとしてレンダリングします。 この形式はレポートツールバーのエクスポートドロップダウンリストには表示されません。これは後方互換性のために含まれています。 |
| PPTX | PowerPointでレポートをPPTXファイルとしてレンダリングします。 このフォーマットはレポートツールバーのエクスポートドロップダウンリストにPowerPointとして表示されています。 |
| PDFでレポートを生成します。 | |
| IMAGE | レポートをページ指向形式でレンダリングします。 この形式はレポートツールバーのエクスポートドロップダウンリストに TIFFファイル として表示されています。 |
| MHTML (HTMLレンダリング拡張の一部) | MHTMLでレポートをレンダリングします。 レポートはブラウザで開きます。 この形式は、レポートツールバーのエクスポートドロップダウンリストに MHTML(ウェブアーカイブ) として表示されています。 |
| CSV | カンマ区切られた形式で報告を表示します。 レポートはCSVファイル形式に関連付けられた閲覧ツールで開きます。 レポートツールバーのエクスポートドロップダウンリストでは 、CSV(カンマ区切り) の形式で表示されます。 |
| XML | レポートをXMLでレンダリングします。 レポートはブラウザで開きます。 このXML出力に追加の変換を加えることは、自分でレンダリング拡張を開発する手間を避けるコスト効率の良い方法かもしれません。 フォーマットはレポートツールバーのエクスポートドロップダウンリストに XMLファイルとレポート データとして表示されています。 |
| アトム | レポートをデータフィード形式でATOMSVCファイルとしてレンダリングします。 この形式はレポートツールバーのエクスポートドロップダウンリストにデータ フィード として表示されています。 |
| HTML4.0 (HTMLレンダリング拡張の一部) | HTML5をサポートしていない場合、HTML4.0が使われます。 |
| HTML5 (HTMLレンダリング拡張の一部) | HTML5は、ブラウザ上でレポートを最初に表示する際に使われる形式です。 ブラウザがHTML5に対応しているなら、それが使われる形式です。 それ以外の場合はHTML4.0が使われます。 |
| RPL | RPLはレポートサーバーで使用される中間フォーマットであり、デフォルトのレンダリング拡張です。 |
| NULL | レポートを特定の形式で表示しません。 このレンダリング拡張はレポートをキャッシュに配置するのに便利です。 ヌルレンダリングはスケジュールされた実行や配信で使用すべきです。 |
推奨フォーマットとその用途の詳細については、エクスポートレポート(Report BuilderおよびSSRS)をご覧ください。
Microsoftが実装しReporting Servicesに付属しているレンダリング拡張は、共通のインターフェースセットを使用しています。 この共通インターフェースセットにより、各拡張が同等の機能を実装し、レポートサーバーのコアにおけるレンダリングコードの複雑さを軽減します。
オブジェクトモデルのレンダリング
レポートが処理されると、その結果として公開されるオブジェクトモデル(レンダリングオブジェクトモデル(ROM)が生成されます。 レンダリングオブジェクトモデルは、処理されたレポートの内容、レイアウト、データを定義するクラスの集合体です。 このROMは、Reporting Services向けのカスタムレンダリング拡張を設計、開発、展開したい開発者向けに提供されています。 ROMは、レポートサーバーがユーザー定義のレポートデータとともにレポートのXML定義を処理する際に生成されます。 処理が完了すると、レンダリング拡張によってパブリックオブジェクトモデルが使用され、レポートの出力を定義します。 ROMの利用可能なパブリッククラスはMicrosoftで定義されています。ReportingServices.OnDemandReportRendering名前空間。
カスタムレンダリング拡張を書く
カスタムレンダリング拡張を作成する前に、より簡単な代替案を検討しましょう。 次のようにすることができます。
既存の拡張に対してデバイス情報設定を指定することでレンダリング出力をカスタマイズできます。
XSL変換(XSLT)とXMLレンダリングフォーマットの出力を組み合わせることで、カスタムフォーマットや表示機能を追加できます。
カスタムレンダリング拡張を書くのは難しいです。 レンダリング拡張は通常、レポート要素のすべての組み合わせをサポートし、数百のクラス、インターフェース、メソッド、プロパティを実装する必要があります。 もしReporting Servicesに含まれていない形式でレポートをレンダリングし、レンダリング拡張の管理コード実装を自分で書く場合、レンダリング拡張コードはMicrosoftを実装しなければなりません。レポートサーバーで必要なReportingServices.OnDemandReportRendering.IRenderingExtensionインターフェースです。