web-dev-qa-db-ja.com

式を使用してSSRSのテキストボックスの可視性を設定するにはどうすればよいですか?

データのない日にはレポートでNaNとして表示されるため、レポートがまだ実行されていないときに非表示にする計算列の小計フィールドがあります。

2つの方法を試しましたが、どちらも機能しておらず、ほぼ正しいと確信しています。この表現の何が問題なのかわかりません。

データセットに行がない場合、非表示にしようとしました。

=IIf((CountRows("ScannerStatisticsData")=0),False,True)

私も計算してみました

=iif((fields!Scans.Value / fields!numberOfCases.Value) = 0, False, True)

また、計算のいずれかの列で何もチェックしてみました

=iif(IsNothing(fields!Scans.Value), False, True)

何が間違っていますか?

36
TWood

これはうまくいきませんでした

=IIf((CountRows("ScannerStatisticsData") = 0),False,True)

しかし、これはそうでした、そして、私は本当に理由を説明することができません

=IIf((CountRows("ScannerStatisticsData") < 1),False,True)

sSRSは、同等の比較がそれよりも少ないことを好まないと思います。

13
TWood

あなたが提供した例を試してみましたが、唯一の違いは_@bdparrish_が指摘したようにTrueとFalseの値が入れ替わっていることです。データセットに存在する行の数に基づいてSSRS Texboxを表示または非表示にする実用的な例を次に示します。この例では_SSRS 2008 R2_を使用します。

ステップバイステップのプロセス:_SSRS 2008 R2_

  1. この例では、レポートにはItemsという名前のデータセットがあり、行カウントを表示するテキストボックスがあります。また、データセットのアイテムに行がある場合にのみ表示される別のテキストボックスもあります。

  2. 式に基づいて表示/非表示にするテキストボックスを右クリックし、_Text Box Properties..._を選択します。スクリーンショット#1を参照してください。

  3. _Text Box Properties_ダイアログで、左側のセクションからVisibilityをクリックします。スクリーンショット#2を参照してください。

  4. _Show or hide based on an epxression_を選択します。

  5. 式ボタンfxをクリックします。

  6. =IIf(CountRows("Items") = 0 , True, False)を入力します。この式は、hide Textbox(Hidden)であることに注意してください。

  7. [OK]を2回クリックして、ダイアログを閉じます。

  8. スクリーンショット#は、レポートデータセットItemsのソースであるSQL Serverテーブル_dbo.Items_のデータを示しています。テーブルにはが含まれます。スクリーンショット#4は、データに対するサンプルレポートの実行を示しています。

  9. スクリーンショット#5は、レポートデータセットItemsのソースであるSQL Serverテーブル_dbo.Items_のデータを示しています。テーブルにはデータなしが含まれます。スクリーンショット#6は、データに対するサンプルレポートの実行を示しています。

お役に立てば幸いです。

スクリーンショット#1:

1

スクリーンショット#2:

2

スクリーンショット#3:

3

スクリーンショット#4:

4

スクリーンショット#5:

5

スクリーンショット#6:

6

62
user756519
=IIf((CountRows("ScannerStatisticsData")=0),False,True)

に置き換える必要があります

=IIf((CountRows("ScannerStatisticsData")=0),True,False)

Visibility式がHidden値を設定するためです。

14
Volodymyr

これの代わりに

=IIf((CountRows("ScannerStatisticsData")=0),False,True)

隠したいときは式だけを書く

CountRows("ScannerStatisticsData")=0

または、以下のように真と偽の場所の順序を変更します

=IIf((CountRows("ScannerStatisticsData")=0),True,False)

これは、Visibility式がHidden値を設定するためです。あなたはテキストエリアの上に見つけることができます

" Set expression for: Hidden " 
7
Mahesh.D

あなたの偽と真のリターンを切り替えますか?これらを可視領域に関数として配置すると、falseは表示され、trueは表示されないと思います。

0
bdparrish

テキストボックスの可視性は隠し値に依存します

次の例のように、内部条件が満たされるとテキストボックスの非表示機能がTrueになり、そうでない場合はテキストボックスの非表示機能がFalseになります

=IIf((CountRows("ScannerStatisticsData") = 0), True, False)
0
user2299191

rdlファイルの内容:

<Visibility><Hidden>=Parameters!casetype.Value=300</Hidden></Visibility>

式が真の場合、テキストボックスは非表示になります。

0
Justin

Twood、Visibility expressionは、「visibility」をどのように動作させるかについて記述する式です。したがって、テキストボックスを非表示または表示する場合は、次のように記述します。

=IIf((CountRows("ScannerStatisticsData")=0),True,False)

これは、データセットが0の場合、テキストボックスを非表示にすることを意味します。

0
Marie