2017-04-03 10 views
0

2つの日付パラメータ(StartDateとStartInMarketDate)を持つレポートがあります。場合によっては、StartInMarketDate値がデータベースにNULLである可能性があります。両方のパラメータがNULLまたはStartInMarketDateパラメータがNULLの場合、すべてのレコードがレポートに表示されます。 StartInMarketDateパラメーターに日付が指定され、StartDateがNULLの場合、StartInMarketDateがNULLのレコードをすべて除外する必要があります。SSRS行の可視性の表現

私は式に基づいて行を隠すこの問題を解決できるはずですが、正しい構文を取得できません。

以下は私が思いついた構文ですが、StartInMarketDateパラメーターを入力するとすべてのレコードが含まれ、StartDateパラメーターを使用すると正しいレコードが除外されます。

=IIF(IsNothing(Parameters!StartInMarketDate.Value), IIF(IsNothing(Fields!StartInMarketDate.Value), IIF(IsNothing(Parameters!StartDate.Value), False, True), False), False) 

私が間違っている場所についてのご意見はありがとうございます。

ありがとうございました。

+0

データセットクエリでこのフィルタリングを行うことをお勧めします。書かないと、見えないサーバから戻ってくる行を簡単に書いて保存することができます。 –

答えて

0

私はあなたが後方隠し表現を持っていると思う - それはないショーそれ、行を非表示にする必要があるときに値がTRUEでなければなりません。

あなたの表現は少し複雑すぎるようです。 ...日付がStartInMarketDateパラメータと開始日 のために与えられている

がNULLであるStartInMarketDateフィールドが NULLここですべてのレコードを除外する:あなたの基準によると、あなただけの行を除外したいです。

=IIF(NOT IsNothing(Parameters!StartInMarketDate.Value) AND IsNothing(Parameters!StartDate.Value) AND IsNothing(Fields!StartInMarketDate.Value), TRUE, FALSE) 

あなたはStartInMarketDate日付フィールドがStartInMarketDateパラメータと一致する場所をフィルタリングするどこかにはありますか?

0

式を使用する場合は、表示されているプロパティではなく、隠しプロパティを設定していることに注意してください。外側IIFを見ると、基本的にIF StartInMarketDateは空ではなく、HiddenをFalseに設定している(すべて表示している)。

基本的にはTrue =非表示です。 False =表示する。

True/Falseをすべて入れ替えてください。