3

サブレポート内にメインレポートがあります

レポート サービスを使用して、サブ レポートからメイン レポートに値を取得する方法は?

メイン レポートの Tablix データに基づいて、サブ レポートを呼び出しています。たとえば、メイン レポートに Tablix があり、サブ レポートに @Number 値を渡して子レコードを取得し、合計値の合計をメイン レポートに戻したいとします。どうすればこれを達成できますか!

役に立たなかったデータセットを作成してみました。毎回0カウントになります。

メイン レポートにサブ レポート データセットを作成して、メイン レポートで以下の式を使用しました。

=COUNTROWS("SubReportDataset")

それでも、レポートで機能する解決策が見つかりませんでした。助けてください。

4

1 に答える 1

3

サブレポートを直接参照して行う方法

おそらく、次の方法でサブレポート アイテムにアクセスできます。

[Reports]![YourReportName]![YourSubReportName]![TheValueFromTheSubReportYouWantToReference]

過去にこの種のものへの参照を見たことがありますが、reportItems 参照 (またはこの種のもの) を一貫して、私が想像していた方法で動作させることはできませんでした。

もちろん、おそらく複数回繰り返されるサブレポートを参照していることを念頭に置いてください。上記の参照で特定のサブレポートのどのインスタンスを取得しますか? これは価値があるよりも面倒なことだと思うでしょう。

どのようにアプローチすることをお勧めしますか

上で述べたように、サブレポートを直接参照することは、不可能ではないにしても、困難で信頼性が低いと思います。代わりに、@Number をサブレポートに渡していると述べています。サブレポート内でビューまたは関数を使用して @Number に基づいてデータを取得する場合、同じロジックと集計関数をメイン レポートに簡単に埋め込むことができます。このようにして、サブレポートと同じ計算とデータを利用しているメイン レポートのクエリから集計値を参照できます。

サブレポートがビュー、関数、または共有データセットを使用しておらず、ビュー、関数、または共有データセットを使用できない (または使用しないことを選択した) 場合 (強調するためにそれらを 2 回リストしたことに注意してください)、SQL クエリの再現に行き詰まります。メイン レポートでクエリ ロジックを呼び出し、それをメイン レポートに集計します。2 つの場所で同じ SQL ロジックを維持する必要があるため、これは潜在的にメンテナンスの悪夢です (そして、私自身の組織で積極的に最小限に抑えようとしているものです)。とはいえ、サブレポート内の SQL クエリの複雑さに応じて、かなり簡単に実行できます。

ご不明な点がございましたら、コメントとして残してください。できる限りお手伝いさせていただきます。

于 2016-04-04T16:54:04.277 に答える