web-dev-qa-db-fra.com

Report Builder 3.0, expression SWITCH DEFAULT / ELSE

J'essaie d'afficher un logo différent en fonction du numéro de franchise des utilisateurs.

Paramètre = UserFranNr

Si la valeur <> 99 et <> 87, l'image incorporée à afficher est ID0. (Les noms d'images incorporées sont des chaînes.)

Cela fonctionne avec les IIF imbriqués mais semble être le bon moment/endroit pour utiliser SWITCH.

(Il est fort possible que plus de franchises utilisent leur propre logo à l'avenir.)

=Switch 
(
Parameters!UserFranNr.Value = "99","ID99",
Parameters!UserFranNr.Value = "87","ID87",
"ID0"
)

Je n'ai trouvé aucune documentation expliquant comment implémenter une valeur par défaut à l'aide de SWITCH.

Est-ce seulement possible? Si c'est le cas, comment? Si ce n'est pas des alternatives décentes? Merci

Ressources: Exemples d'expressions (Générateur de rapports et SSRS)Boîte de dialogue Définir la formule (Générateur de rapports)

Plus ici et d'autres forums.

39
Dennis Post

Il n'y a pas de clause par défaut dans l'expression SSRS Switch.

Cependant, vous pouvez toujours modifier légèrement votre expression:

=Switch 
(
  Parameters!UserFranNr.Value = "99","ID99",
  Parameters!UserFranNr.Value = "87","ID87",
  true, "ID0"
)

Comme chaque fois que la dernière condition est atteinte, elle sera explicitement évaluée à true, la dernière ligne agira effectivement comme valeur par défaut.

Je l'ai utilisé dans le passé sans problèmes. Autre que peut-être générer des froncements de sourcils chez les personnes qui lisent l'expression, cela fonctionne parfaitement bien avec un effort minimal.

Quant à savoir si c'est un comportement sensé de ne pas avoir de clause par défaut, eh bien, c'est une question pour Microsoft. Cela me semble certainement étrange, mais voilà.

83
Ian Preston