web-dev-qa-db-fra.com

Comment définir la visibilité d'une zone de texte dans SSRS à l'aide d'une expression?

J'ai un champ de sous-total pour une colonne calculée que je souhaite masquer lorsque mon rapport n'a pas encore été exécuté, car les jours sans données, il apparaît sous la forme NaN sur le rapport.

J'ai essayé deux méthodes mais aucune ne fonctionne et je suis sûr que c'est presque correct. Je ne sais tout simplement pas ce qui ne va pas dans l'expression.

J'ai essayé de cacher si mon jeu de données n'avait pas de lignes.

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

J'ai aussi essayé de faire un calcul

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

J'ai également essayé de vérifier rien sur l'une des colonnes du calcul

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

Qu'est-ce que je fais mal?

36
TWood

Cela n'a pas fonctionné

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

mais cela a fait et je ne peux pas vraiment expliquer pourquoi

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

devinez SSRS n'aime pas les comparaisons égales autant que moins que.

13
TWood

J'ai essayé l'exemple que vous avez fourni et la seule différence est que vous avez les valeurs True et False commutées comme l'a souligné @bdparrish. Voici un exemple de travail permettant de rendre une Texbox SSRS visible ou masquée en fonction du nombre de lignes présentes dans un jeu de données. Cet exemple utilise SSRS 2008 R2.

Processus pas à pas:SSRS 2008 R2

  1. Dans cet exemple, le rapport contient un jeu de données nommé Items et une zone de texte pour afficher le nombre de lignes. Il possède également une autre zone de texte qui ne sera visible que si le jeu de données Eléments a des lignes.

  2. Cliquez avec le bouton droit sur la zone de texte devant être visible/masquée en fonction d'une expression et sélectionnez Text Box Properties.... Reportez-vous à la capture d'écran # 1.

  3. Dans la boîte de dialogue Text Box Properties, Cliquez sur Visibility dans la section de gauche. Reportez-vous à la capture d'écran # 2.

  4. Sélectionnez Show or hide based on an epxression.

  5. Cliquez sur le bouton d'expression fx.

  6. Entrez l'expression =IIf(CountRows("Items") = 0 , True, False). Notez que cette expression est à masquer la zone de texte (masqué).

  7. Cliquez deux fois sur OK pour fermer les boîtes de dialogue.

  8. La capture d'écran # montre les données de la table SQL Server dbo.Items, Qui est la source du jeu de données de rapport Items. Le tableau contient lignes. La capture d'écran # 4 montre l'exemple de rapport exécuté par rapport aux données.

  9. La capture d'écran # 5 montre les données de la table SQL Server dbo.Items, Qui est la source du jeu de données de rapport Items. La table contient pas de données. La capture d'écran # 6 montre l'exemple de rapport exécuté par rapport aux données.

J'espère que ça t'as aidé.

Capture d'écran n ° 1:

1

Capture d'écran n ° 2:

2

Capture d'écran 3:

3

Capture d'écran 4:

4

Capture d'écran 5:

5

Capture d'écran 6:

6

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

Devrait être remplacé par

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

parce que l'expression Visibility a défini la valeur cachée.

14
Volodymyr

au lieu de cela

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

écris seulement l'expression quand tu veux te cacher

CountRows("ScannerStatisticsData")=0

ou changer l'ordre des lieux vrais et faux comme ci-dessous

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

parce que l'expression Visibility a défini la valeur Hidden. que vous pouvez trouver au-dessus de la zone de texte

" Set expression for: Hidden " 
7
Mahesh.D

Échangez vos déclarations fausses et vraies? Je pense que si vous mettez ces fonctions en tant que fonction dans la zone de visibilité, alors false le montrera et true ne le montrera pas.

0
bdparrish

La visibilité de la zone de texte dépend de la valeur masquée.

Comme dans l'exemple ci-dessous, si la condition interne est satisfaite, la fonctionnalité masquée de la zone de texte sera True, sinon, si la condition échoue, la fonctionnalité masquée de la zone de texte sera False.

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

le contenu du fichier rdl:

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

la zone de texte sera donc masquée si votre expression est vraie.

0
Justin

Twood, expression de visibilité sont les expressions que vous écrivez sur la façon dont vous voulez que la "visibilité" se comporte. Donc, si vous voulez masquer ou afficher la zone de texte, vous voulez écrire ceci:

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

Cela signifie que si le jeu de données est 0, vous souhaitez masquer la zone de texte.

0
Marie