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 veux masquer lorsque mon rapport n'a pas encore été exécuté car les jours sans données, il apparaît comme 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 pas ce qui ne va pas avec l'expression.
J'ai essayé de me 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 aussi essayé de vérifier isnothing sur l'un des colonnes dans le calcul
=iif(IsNothing(fields!Scans.Value), False, True)
Ce que je fais mal?
7 réponses
J'ai essayé l'exemple que vous nous avez fournies, et la seule différence est que vous avez des valeurs Vrai et Faux arrêt @bdparrish
l'a souligné. Voici un exemple pratique de rendre une zone de texte SSRS visible ou masquée en fonction du nombre de lignes présentes dans un ensemble de données. Cet exemple utilise SSRS 2008 R2
.
Étape-par-étape du processus: SSRS 2008 R2
Dans cet exemple, le rapport a un ensemble de données nommé
Items
et une zone de texte pour afficher le nombre de lignes. Il dispose également d' une autre zone de texte qui ne sera visible que si les éléments de l'ensemble de données ont des lignes.Faites un clic droit sur la zone de texte qui doit être visible/cachée en fonction d'une expression et sélectionnez
Text Box Properties...
. Reportez-vous à la capture d'écran #1.Dans la boîte de dialogue
Text Box Properties
, Cliquez surVisibility
dans la section de gauche. Reportez-vous à la capture d'écran #2.Sélectionnez
Show or hide based on an epxression
.Cliquez sur le bouton expression
fx
.Entrez l'expression de
=IIf(CountRows("Items") = 0 , True, False)
. Notez que cette expression est de masquer la zone de texte (Caché).Cliquez deux fois sur OK pour fermer les boîtes de dialogue.
Capture d'écran #3 montre les données dans la table SQL Server
dbo.Items
, qui est la source de données du rapport ensembleItems
. La table contient 3 lignes. Capture d'écran #4 affiche l'exemple d'exécution du rapport par rapport aux données.Capture d'écran #5 affiche les données en SQL Table serveur
dbo.Items
, qui est la source de l'ensemble de données du rapportItems
. Le tableau contient aucune donnée . Capture d'écran #6 affiche l'exemple d'exécution du rapport par rapport aux données.
J'espère que ça aide.
Capture d'écran #1:
Capture d'écran #2:
Capture d'écran #3:
Capture d'écran #4:
Capture d'écran #5:
Capture d'écran #6:
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
Doit être remplacé par
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
Parce que l'expression Visibility configure la valeur cachée.
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 de.
Au Lieu de cela,
=IIf((CountRows("ScannerStatisticsData")=0),False,True)
Écrivez uniquement l'expression lorsque vous voulez masquer
CountRows("ScannerStatisticsData")=0
Ou changer l'ordre de vrai et faux lieux comme ci-dessous
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
Parce que L'expression de visibilité configure la valeur cachée. que vous pouvez trouver au-dessus de la zone de texte comme
" Set expression for: Hidden "
Changer vos retours faux et vrai? Je pense que si vous les mettez en fonction dans la zone de visibilité, alors false le montrera et true ne le montrera pas.
Visibilité de la zone de texte dépend de la Valeur Cachée
Selon l'exemple ci-dessous, si la condition interne satisfait alors la fonctionnalité cachée de la zone de texte sera vraie sinon si la condition échoue, la fonctionnalité cachée de la zone de texte sera fausse
=IIf((CountRows("ScannerStatisticsData") = 0), True, False)
Twood, expression de visibilité est les expressions que vous écrivez sur la façon dont vous voulez que la "visibilité" se comporte. Ainsi, si vous souhaitez masquer ou afficher la zone de texte, vous voulez écrire ceci:
=IIf((CountRows("ScannerStatisticsData")=0),True,False)
Cela signifie que si l'ensemble de données est 0, vous voulez masquer la zone de texte.