IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSRS Discussion :

[2K5] pb sur expression pour mise en couleur d'une cellule en fonction de seuils parametrés


Sujet :

SSRS

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut [2K5] pb sur expression pour mise en couleur d'une cellule en fonction de seuils parametrés
    Bonjour à tous

    je me présente : je suis nouvelle sur le forum et nouvelle sur l'outil BI de Microsoft (je suis en cours de reconversion professionnelle depuis 3 mois), je planche en ce moment sur des rapports SSRS à mettre en place pour un client et je rencontre un souci :

    Je dois faire en sorte qu'une cellule de mon rapport prenne une couleur différente (truc classique : vert, orange, rouge) en fonction de la valeur de cette cellule qui est un calcul fait à partir d'autres champs du rapport, après un essai infructueux avec deux iif imbriqués, j'ai utilisé l'option Switch, j'ai donc cette expression dans la propriété BackgroundColor de ma cellule qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Switch(ReportItems("pourcentageTOTAL").value < .4, "Red", ReportItems("pourcentageTOTAL").value>= .6, "Green", ReportItems("pourcentageTOTAL").value < .6, "DarkOrange")
    1ère question : au lieu d'avoir les seuils en dur dans l'expression, j'aurais voulu les récupérer dans une table sql (pour pouvoir les changer à un seul endroit si besoin), j'ai donc créer une table dans ma base sql server, créer un dataset récupérant les valeurs dans mon rapport SSRS, mais quand je code ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Switch(ReportItems("pourcentageTOTAL").value < (Fields!seuil1.Value, "DataSet2"), "Red", ReportItems("pourcentageTOTAL").value>= (Fields!seuil2.Value, "DataSet2"), "Green", ReportItems("pourcentageTOTAL").value < (Fields!seuil2.Value, "DataSet2"), "DarkOrange")
    j'ai l'erreur (3 fois) :
    [rsFieldReference] The BackgroundColor expression for the textbox ‘pourcentageTOTAL’ refers to the field ‘seuil1’. Report item expressions can only refer to fields within the current data set scope or, if inside an aggregate, the specified data set scope.

    apparemment il n'accepte pas que j'aille chercher des données d'un autre dataset.. avez-vous une idée pour contourner ce pb?


    2ème question : comme ma cellule est un calcul et que je ne voulais pas le répéter dans l'expression j'ai fini par trouver la collection ReportsItem qui associé au nom de ma textbox me permet de tester la valeur de ma cellule, sauf que je dois appliquer mon expression sur tout une colonne de mon rapport qui contient 3 groupes et une ligne total ce qui veut dire que j'ai 4 textbox différentes pour ma colonne dans mon rapport, y'a-t-il un "truc" pour dire "la valeur de la cellule en cours" sans avoir besoin de nommer la textbox?


    J'espère avoir été claire dans mes questions, sinon n'hésitez pas à me demander des précisions, merci par avance pour vos idées

    nota : quand on a une question à poser qui est en rapport avec un topic existant vaut-il mieux se greffer sur ce topic même ancien et même noté résolu, ou en créer un nouveau?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 265
    Points : 314
    Points
    314
    Par défaut
    1ère réponse: il faut spécifier une fonction d'agrégation si tu utilises le scope d'un dataset => First(FIELDS!seuil1.Value, "DataSet2")

    2ème réponse: Essaye Me.Value, je ne sais plus si cela fonctionne... Autrement, si tu veux éviter de devoir reparcourir toutes tes cellules le jour où tu voudras du violet à la place du rouge, je te conseille de créer une fonction dans le code personnalisé et d'appeler celle-ci.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    super tout marche nickel, merci beaucoup dabratt
    pour ton conseil de créer un fonction, je vais me pencher sur le sujet!

  4. #4
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Me.Value ne fonctionne malheuresement pas en 2005 sûr et en 2008, je pense pas. Il est référencé et ne fonctionne que dans un ou 2 cas très précis (mais je sais plus lesquels).

    Pour le nota, ca dépend de la question. Une demande de précision ou de complément sur le sujet traité (un truc rapide quoi), tu peux le mettre dans le sujet existant.
    Sinon ouvre un nouveau sujet, c'est plus simple pour le suivi et plus propre, ca évite de tout mélanger.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par Reskibil Voir le message
    Me.Value ne fonctionne malheuresement pas en 2005 sûr et en 2008, je pense pas. Il est référencé et ne fonctionne que dans un ou 2 cas très précis (mais je sais plus lesquels).
    ah bon je l'ai testé sur mon rapport en preview (en 2005) et ça fonctionne coup de bol? faut que je creuse...

    merci pour ta réponse sur le nota

  6. #6
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Comme je l'ai dit, ca ne fonctionne pas dans tous les cas. J'avais eu besoin de l'utiliser pour tester la valeur même de la cellule dans le tableau et ca ne fonctionnait pas. Par contre pour les propriétés d'affichage (background, font etc...) ca marche je crois mais j'ai jamais utilisé.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    ok merci pour tes précisions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Mise en couleur d'une cellule selon la valeur d'une autre cellule
    Par young 25 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/02/2012, 12h00
  2. Réponses: 3
    Dernier message: 13/08/2008, 21h40
  3. [MySQL] Changement de couleur d'une cellule en fonction d'une requete
    Par freko dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/07/2008, 16h56
  4. Mise en couleur d'une cellule
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 13/06/2008, 15h34
  5. Mise en forme d'une cellule en fonction de son contenu
    Par Iloon dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/01/2008, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo