2

私は現在、ユーザーがリストからアイテムを選択できるASP.Net WebFormsアプリケーションに取り組んでいます。これにより、レポートビューアー2010(サーバーモード)を使用して、最終的にSSRSレポートが表示されます。@idレポートは、選択したアイテムの正しいデータをレポートに表示できるように、パラメーターを使用してコーディングされています。

レポートデータセットは複数の行を返すことができ、データの一部が上部の要約領域(ヘッダーセクションではない)に表示されます。たとえば、テキストボックスには式があります=FIRST(Fields!Address.Value, "dsMain")。返されるデータは非正規化されるため、Addressは常に同じ値になります。それが作品を使う理由FIRST()です。そして、残りのデータは、グループ化などが適用されたTablixに表示されます。

しかし今、私はこれを変更して、ユーザーが複数のアイテムを選択できるようにし、レポートを複数回効果的に表示できるようにすることを検討していますが、同じレポートビューアコントロールに表示されます。主な要件はレポートをバッチ印刷することです。したがって、すべてをワンクリックで印刷できるようにするには、レポートを1つのレポートビューコントロールに表示することが重要です。

そもそもレポートを設計しなかったため、またレイアウトと実行されるSQLがかなり複雑なためです。SQLは、それらのリストではなく、1つのIDに対して実行することを目的としています。レポートやSQLを書き直す必要がないオプションを探しています。

レポートビューアにidパラメータをリストとして指定し、渡されたIDごとにレポートビューアに同じレポートを実行させることはできますか?-レポートパラメータが複数の値を受け入れることができることは知っていますが、レポートは最初の値をストアドプロシージャにインテリジェントに渡さないが、他の値についてはレポートを繰り返さないため、これは同じではありません。おそらく、レポートデザイナに、複数の値が渡された場合に繰り返すことができる設定がありますか?

誰かがこれを機能させるために何か他のものを提案できますか?または、レポートとSQLを拡張して複数のIDを受け入れ、レポートを効果的に再設計する唯一のオプションはありますか?

提案に感謝するか、これを手伝ってください。

4

1 に答える 1

2

答えは、サブレポートを使用することです。

IDのリストを複数値のパラメーターとして受け取る新しいレポートを作成します。

そのパラメーターをリストコントロールのデータセットとして使用します。

リスト内にサブレポートを作成します。リスト内のレポートは元のレポートです。

次に、データセットの各要素(パラメーターのリスト)をパラメーターとしてサブレポートに渡すことができます。SSRSはあなたが望むようにそれを繰り返します。

于 2012-06-21T12:14:25.130 に答える