山崎 実久
SQL Developer Support Engineer
SQL Server Reporting Services (SSRS) を利用してレポートをデザインし、PDF にエクスポートした場合や印刷した場合、デザインした通りにレポートのフォーマットを構成できない場合があります。
例えば、レポートのデザイン時にはなかった予期せぬ箇所での改行や、罫線の太さが異なるなどが挙げられます。
では、そういった場合どう対処すればよいか? また、なぜ見栄えが変わるのか? について、本 blog で説明します。
1. どのように対処するか?
対処方法は 3 つあります。
A) デザインを変更する。
B) 用途に応じたレポートをそれぞれ用意する。
C) 最新の修正プログラムを適用する。
それぞれ詳細を説明します。
A) デザインを変更する。
HTML 形式や Word, Excel でエクスポートされたレポートの見栄えを重視するか、それとも PDFでのエクスポートや印刷されたレポートの見栄えを重視するか判断し、優先した方のフォーマットで運用する。
B) 用途に応じたレポートをそれぞれ用意する。
HTML 形式や Word, Excel でエクスポートするためのレポートと、PDFでエクスポートするためのレポートや印刷用のレポートと複数レポートを用意し、目的に合わせ使い分ける。
C) 最新の修正プログラムを適用する。
製品の制限や不具合に関する問題か否か確認するため、Reporting Services のバージョンを確認し、SQL Server 最新モジュールと照らし合わせ、最新でない場合は、最新のモジュールを適用します。少なくとも最新のサービスパックが適用されていることを確認します。
本記事作成時の最新のモジュール情報は、SQL Server の最新モジュール情報 (まとめページ)で確認することが可能です。
2. どうして見栄えが変わるのか?
SQL Server Reporting Services では 、レポートを処理する際、Report Processing、Data Processing、Report Renderingの 3 つの工程を経てレポートを出力します。
レポートの処理工程 | 処理内容の概要 |
Report Processing | レポート定義のレイアウト情報と取得したデータを組み合わせる。 |
Data Processing | データベースに接続しデータを取得する |
Report Rendering | レポートを HTML や Word, Excel や PDF などの形式で出力する。 |
上記工程の Report Renderingでは、以下のような複数の レンダラ― (Renderer)を利用します。表示したいレポートの形式に合わせて、Renderer が選択されます。
レンダラ― (Renderer) | 説明 |
ATOM デバイス情報の設定 | Atom 準拠の表示出力に関連するデバイス情報設定 |
CSV デバイス情報設定 | CSV 表示出力に関連するデバイス情報設定 |
Excel デバイス情報設定 | Excel 表示出力に関連するデバイス情報設定 |
Word デバイス情報設定 | Word 表示出力に関連するデバイス情報設定 |
HTML デバイス情報設定 | HTML 表示出力に関連するデバイス情報設定 |
画像デバイス情報設定 | IMAGE 表示出力に関連するデバイス情報設定 |
MHTML デバイス情報設定 | MHTML 表示出力に関連するデバイス情報設定 |
PDF デバイス情報の設定 | PDF 表示出力に関連するデバイス情報設定 |
XML デバイス情報設定 | XML 表示出力に関連するデバイス情報設定 |
RGDI デバイス情報の設定 | RGDI 表示出力に関連するデバイス情報設定 |
上記の表の通り、Excel としレポートを出力するのか、PDF としてレポートを出力するのかによって、SSRS で利用されるレンダラ―が異なることが分かります。
この利用されるレンダラーの違いにより、レポートの見栄えも変わるというのが、本事象です。
その他、レポートを Excel の xls 形式で出力した場合と、xlsx 形式で出力した場合の見栄えの違いも、レンダラーの違い、Excel 2003 レンダラーを利用するか、Excel レンダラーを利用するかの違いにより発生します。
HTML 形式で見たレポートのデザイン通りに、印刷したい場合や、PDF に出力したい場合でも、上記 SSRS の最適化の動作により、見栄えがどうしても変わってしまいます。
HTML 形式の見栄えを良くするか、印刷、PDF の見栄えを良くするかはトレードオフとなり、両方選択することができません。
+ 参考情報
レンダリングの動作 (レポート ビルダーおよび SSRS)
http://technet.microsoft.com/ja-jp/library/dd255244.aspx
以上、レポート表示の際に遭遇する問題について、参考になれば幸いです。