1

私は、Reporting Services 2008 を使用して調査データに関するレポートを作成する任務を負っています。

私の課題はこれです:

  • 調査には任意の数の質問があります
  • 質問は 3 つのタイプのいずれかです (数値評価、はい/いいえの質問、またはフリー テキスト)。

これを処理するために、メイン レポートでサブレポートを使用することにしました。たとえば、3 つの質問の種類ごとに 1 つのレポートを定義し、調査のレポートを作成するときは、基本的に調査レポート用の RDL を動的に作成します。サブレポートとしての 3 つの質問タイプ。

これは実際にはこれまでのところ非常にうまく機能していますが、1 つの大きな問題に直面しています。サブレポートにデータを取得するにはどうすればよいですか?

私が現在見ているアプローチは、質問の種類ごとに各 (サブ) レポートを作成し、共有データ ソースに基づいて独自のデータ セットを定義し、データベースから値を抽出することです。これでうまくいくと確信していますが、5、10、20 のサブレポートをデータベースに送ってデータを個別に取得することにあまり熱心ではありません。

私が望んでいたのは、「メイン」レポートで調査全体のデータを1回取得し、適切なデータのサブセットを各サブレポートにフィードしてレンダリングできるようにすることでした-しかし、私はそうは見えませんこれを行う方法を見つけるために....

完全に明らかな何かが欠けていますか?私は Reporting Services にあまり触れたことがなく、それを使った最後のプロジェクトは 4 年前 (Reporting Services 2000 を使用) でした。そのため、明らかな解決策を知らないだけである可能性が高いです :-) 教えてください!

ヒント、Reporting Services に関する優れた記事やブログへのポインタ、およびヘルプをありがとう!

マルク

4

3 に答える 3

2

通常の方法は、メイン レポートからサブレポートにパラメーター (日付範囲など) を渡し、サブレポートが他のすべてを処理することです。パフォーマンスを改善するには、キャッシュまたはスナップショットからサブレポートをレンダリングできるかどうかを確認してください。キャッシュは、渡されたパラメータの組み合わせでレポートを格納するため、最初の「データベース ヒット」の後、一部またはほとんどのサブレポートが実際にキャッシュから返される場合があります。

于 2009-11-19T13:24:04.627 に答える
1

私は同じ問題に苦労しました。しかし、「キャッシュされた共有データセット」を使用して妥当なパフォーマンスを達成できる方法があります。基本的に、サブレポートは、すべてのサブレポートのすべての行を含む、より大きなデータセットを使用します。「データセット フィルター」を使用すると、各サブレポートで行を適切にフィルター処理できます。ただし、これは 2008 バージョンでのみ使用できます。

于 2010-08-26T01:19:16.863 に答える
0

パラメーター必要な最終データである場合は、それらを使用してサブレポートにダミーのデータセットを作成します。SQL として「SELECT 1 AS DUMMY」を使用できます (これは、サブレポートが互いに異なるレイアウトを持っていることを前提としています)。

それとも、関数またはテーブル関数を使用して「マスター」データセットを再考できますか?

それでもSQLサーバーに負担がかかりますが、少なくとも1回のヒットで実行され、RSボックスのドレインは少なくなります.

于 2010-03-09T16:49:09.397 に答える