というわけで、レポートのプレビュー画面サンプルを作ってみました。
メインの画面に貼り付けるパターンと、ChildWindowによるダイアログ表示の2パターン。
A4縦固定サイズですが、3種類のズーム表示に対応してみました。
ScrollViewerとViewBoxの組み合わせで実現しています。
コードは端折りますが、注意点としては、レポート定義として利用するUIElementは表示用と印刷用のインスタンスを別々に用意しておく必要があるようです。
プレビュー中のインスタンスを印刷用に使いまわそうとすると、画面に表示されている状態が反映されてプリンタ出力されてしまいました。
まぁ、ここまでやっておいて言うのもなんですが、複数ページのレポートといっても、一連のデータがダラーっと出力できるわけではなく、スクロールによるページ移動ができるわけでもないので、Silverlightでのレポートは単票形式のものだけにしておいたほうが無難そうな雰囲気。
ページングは複数の単票レポートを一括出力したいときにでも使うのかな、と。
コメントを残す