Switch & IIF mise en forme Conditionnelle dans SSRS 2008
Je suis vais avoir quelques problèmes avec la mise en forme conditionnelle dans SSRS. J'ai essayé de l'Interrupteur & IIF Consolidés (ci-dessous). Le rapport s'exécute mais ne retourne pas les couleurs comme ça, je suis en espérant qu'il le ferait. Je suis en train de mettre en surbrillance les dates qui sont <= aujourd'hui dans le rouge, et tout le reste en noir. Importe-t-il si ce champ est un champ de date? J'ai seeen d'autres questions ici avec les mêmes problèmes, mais pas de résolutions. Espérais serait aujourd'hui mon jour de chance de trouver une réponse. Voici ce que j'ai essayé et je vous remercie d'avance pour toute entrée.
=Switch( Fields!Decision_Must_Be_Made.Value <= today(), "Red",
Fields!Decision_Must_Be_Made.Value > today(), "Black")
=IIF( Fields!Decision_Must_Be_Made.Value <=today(), "Red", "Black")
- Si vous avez trouvé votre propre solution au problème, n'hésitez pas à poster une réponse et de l'accepter. De cette façon, la réponse est plus évidente pour les futurs lecteurs.
- Sorte de liés à...le truc avec la
Switch
fonction est d'utiliserTrue = True
comme le dernier élément comme une sorte de "catch all" mécanisme. - Besoin de Plus d'Informations sur Ce qui ne les Champs!Decision_Must_Be_Made.Valeur contenir de valeurs et de son type dans la base de données. Est c'est la seule valeur que vous obtenez à partir de la base de données. Par défaut, il prendre la première valeur et les compare. Toute Erreur que vous obtenez après la visualisation de l'état, je ne suis pas face à toutes les questions que je reçois des valeurs et de pouvoir les comparer avec aucune erreur.
- Je pensais que je ne poste mon asnwer mais je ne vois pas maintenant. Quand j'ai essayé de répondre à ma propre question, j'ai un message indiquant que je ne pouvais pas répondre à ma propre question jusqu'à 6 heures connexes (puisque je suis encore assez nouveau pour la communauté).
- Ouais, je ne connais pas toutes les règles pour les nouveaux membres. J'ai d'abord commenté parce que je l'ai vu "en suspens" modifier " (je ne sais pas si il a été approuvé). Dans ce cas, l'affichage distinct "réponse" est sans doute mieux que la mise à jour de la question d'origine. Donc c'est plus facile à trouver. Lorsque vous êtes autorisé à afficher une "réponse" qui est .. 😉 Btw, bienvenue sur stackoverflow!
Vous devez vous connecter pour publier un commentaire.
Oui, il a certainement des questions si le champ est un champ Date champ de Temps. Si c'est une chaîne de caractères, alors vous devez le convertir en datetime premier. La façon de le faire dépend du format de la chaîne. Mais il sera beaucoup mieux si vous pouvez coller avec un champ date /heure à partir de la base de données. (J'ai vu où certains de formater une date en une chaîne de caractères dans le select de la requête sql. Ne pas le faire. Le Format le plus tard possible: dans SSRS, à la zone de texte de niveau.)
Si c'est un dateTime, briser votre formule pour trouver ce qui ne fonctionne pas comme prévu et de la rendre plus visible, si seulement pour le débogage. L'expression d'une cellule, par exemple:
Édité pour ajouter des informations sur l'endroit où la couleur de la formule doit être ajoutée:
Des sons que vous n'avez pas l'IIF spécification de la couleur à la bonne place. Il y a peu d'endroits différents, vous pouvez spécifier ce qui doit être dans les propriétés de la zone de texte ou l'espace réservé. La valeur de ces choses devraient être purement et simplement votre date de champ (
=Fields.Decision_Must_Be_Made.Value
), mais la couleur de la police doit être spécifié séparément. Un seul lieu pour faire ce qui est dans le Texte de la Boîte de dialogue Propriétés. Dans la police volet, vous devez spécifier la couleur de la police. Le Fx symbole indique que vous pouvez spécifier une formule. Cliquez sur ce bouton pour une place pour entrer votre '=iif...' formule.Certes ce n'est pas de réponse à votre scénario, mais il peut aider quelqu'un d'autre. J'ai eu un problème où un stand-alone zone de texte à l'aide d'un scénario où je voulais afficher un message d'erreur quand il n'y a pas d'enregistrement ou les enregistrements en double. Ma formule "=IIf(IsNothing(Premier(Champs!MyField.Valeur)) Ou En Première(Champs!MyField.Valeur) <> le Dernier(les Champs!MyField.Valeur), "Rouge", "SomeOtherColorButNotBlack") qui ne rend pas les corriger avant-couleur (sortie "Noir") cependant, en faisant une expression similaire qui est Vrai ou Faux sur un tableau Matriciel ou de la Matrice fonctionne très bien. Un autre pour MS à résoudre. J'ai trouvé ma solution de contournement par le réglage de la couleur à être toujours en rouge, puis l'expression du Texte à vide lorsque aucune erreur.