1

多数のレポートを PDF で表示する必要がある Web アプリケーションがあります。これはasp.netアプリケーションであり、SSRS LocalReportオブジェクトを使用してPDFでレンダリングし、ページに書き込みます。レンダリングのためにレポートに送信する前に、C# でデータに対して多くの処理を行うため、(リモート モードではなく) ローカル モードを使用する必要があります。

これらのレポートのレンダリングに時間がかかっていることがわかりました。中には数分以上かかるものもあります。2000 年に Crystal Reports V8 を使用して作成した以前のアプリケーションでは、これらのレポートを数秒でレンダリングしていたため、これは容認できません。

私は VS 2012 とレポート ビューアー 2012 を使用していますが、この 12 年間でテクノロジーが大幅に後退したことに驚いています。

SSRS は一般的にページ レンダリングに多大な問題を抱えていることに気付きました。これは、実際にはページ ベースである Crystal Reports とは対照的に、SSRS の構造がコントロール ベースであるためだと思います。そのため、Crystal は、ページのサイズ設定、ヘッダー、フッター、およびページ番号付けに関してそれほど苦労しません。

同様の問題を抱えている人や提案をいただければ幸いです。

4

2 に答える 2

3

私は多くの調査と実験を行い、レポートを大幅に高速化することができました。私が実装したいくつかの改善を共有したいと思います。

1.) レポートを 2 回処理する必要があるため、グローバルな合計ページ数は使用しないでください。

2.) データをフィールドに割り当てるときは、式を使用しないでください。これが遅延の主な原因であることがわかりました。私が使っていた表現のいくつか...

                  = Format(myDate, "dd-MMM-yy")
                  = ": " + myfield.value

コードですべての書式設定を行い、書式設定されたデータをレポートに入力し、レポートに式の処理を行わせませんでした。

3.) ドキュメント マップは単なるフィールドであり、式は使用しないでください。

4.) 可能であれば、Textboxes の CanGrow プロパティを false に設定します。

5.) レポートでコード セクションを使用しないでください。

これが将来誰かに役立つことを願っています。

于 2013-03-28T02:03:58.800 に答える
0

Reporting Services には、"InteractiveSize" というレポート レベルのプロパティがあります。これは、基本的にレポート全体が画面に表示されることを意味する 0,0 に設定できます。これを適切な A4 (21cm、29.7cm) またはその他の標準ページ サイズ (US レター (21.6cm、27.9cm) など) に設定すると、Crystal と同じようにレポート レンダラーがオンデマンドでページをレンダリングします。

于 2013-02-25T00:31:19.147 に答える