これを解決する方法があります。あなたの論点に基づいています。たとえば、4つのサブレポートがあり、page1〜page4という名前が付けられています。メインレポートでは、これら4つのページすべてにパラメータ「Investor_ID」の値が渡されます。メインレポートでは、4つのブール型パラメータを作成し、これらの4つのサブレポートを表示可能にするかどうかを制御するために、サブレポートの非表示プロパティを設定する必要があります。
たとえば、式=iif(Parameters!Page1.Value = true, false, true
を使用すると、パラメータpage1にtrueを選択すると、page1が表示されます。それ以外の場合は非表示になります。
次に、サブレポートの「サブレポートのプロパティ」でパラメータを設定する必要があります。
サブレポートが必要なパラメータInvestor_IDについては、値を選択して=IIF(Parameters!Page1.Value = true, Fields!Investor_ID.Value, nothing)
を使用します。つまり、page1を非表示にすると、mainreportはサブレポートpage1に何も渡しません。その後、Page1は実行されず、Investor_IDパラメーターがヌルであるため、「エラー:サブレポートを表示できませんでした」と表示されます。しかし、そのサブレポートは隠します。したがって、page1は表示されません。
このようにして、隠しサブレポートの実行を制御できます。
ダミーspは元のspと同じ列を返す必要はありませんか? –
@astander:そうしないと、BIDSでプレビューするときに、レポートで多数の警告が生成されます(ただしエラーは発生しません)。理想的には、(それらの警告の生成を防ぐために)ダミープロシージャに同じ列セットを生成することは理想的ですが、それは必須ではありません。 –
これは、サブレポート/ spごとにダミーspを作成し、サブレポートごとに2つのSPを隠しておく必要があることを意味します。MSの決定の背後にある理由は、SPの実行を強制することだったのですか?とにかく、私はSPに可視性のために組み込まれた表示ロジックを持たせたくないので、何かを考えなければならないでしょう。 –