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 :

Changer la couleur de deux lignes qui se suivent quand un de leurs champs a la même valeur [2012]


Sujet :

SSRS

  1. #1
    Membre à l'essai
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 23
    Points
    23
    Par défaut Changer la couleur de deux lignes qui se suivent quand un de leurs champs a la même valeur
    Bonjour,

    je cherche comment réussir à mettre en évidence deux lignes (changement de la couleur de fond) lorsqu'elles se suivent et que un des champs a la même valeur.
    En utilisant la fonction =IIF(Fields!ABS_MT_DEVISE.Value=Previous(First(Fields!ABS_MT_DEVISE.Value)), "Red", "Black") j'arrive à mettre en rouge la deuxième ligne par contre je n'arrive pas à mettre en rouge la première...
    En gros je voudrais que la fonction Next existe pour pouvoir tester la valeur de la ligne suivante....

    Est ce que quelqu'un a une idée ?
    Merci d'avance!

  2. #2
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    Dans Ta requête de ton dataset récupère grâce a une auto-jointure la valeur Suivante
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select
     T.Valeur,
     T.id,
     Next.Valeur as ValeurSuivante
    From ExTable T
    Rigth Join ExTable Next
    on (T.ID= Next.ID-1)
    Et utilise cette valeur dans l'expression de couleur de fond de ta cellule

    Je te conseil de faire de même avec la valeur précédente si ton rapport est un peut long a s'exécuté ...
    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  3. #3
    Membre à l'essai
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse! Le problème c'est que mon dataset est le résultat d'une requête complexe où je n'ai pas d'ID qui se suivent... En fait c'est l'ordre que j'indique dans mon group by qui me permet de classer les enregistrements...
    Je ne vois donc pas bien comment utiliser ton astuce...

  4. #4
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    Il y a toujours une possibilité après la solution dépend des tes tables et de ta requête initiale et de ton SGBD source ....
    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  5. #5
    Membre à l'essai
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 23
    Points
    23
    Par défaut
    * Bonjour, *

    Si quelqu'un a une idée ci dessous ma requête.
    J'effectue cette requete sur la BDD Microsoft Dynamics AX. Elle me permet de sélectionner toutes les transactions clients non lettrées.
    J'ai ajouté une colonne ABS_MT_DEVISE qui me permet de trier les transactions par code client puis par valeur absolue. Je souhaite mettre en évidence les lignes qui se suivent et qui ont le même montant en valeur absolue (dans l'idée mettre en évidence les transactions "éventuellement" lettrables)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    SELECT 
     
            ACCOUNTNUM, 
            TXT, 
            TRANSDATE, 
            LASTSETTLEDATE,
            DUEDATE,
            VOUCHER,
            INVOICE, 
            DIMENSION7_, 
            DIMENSION6_, 
            DIMENSION, 
            CASE WHEN DOCUMENTDATE = '1900-01-01' THEN TRANSDATE ELSE DOCUMENTDATE END AS DATE_CALCUL,    
            DOCUMENTDATE,
            CLOSED,
            AMOUNTCUR,
            CASE WHEN LASTSETTLEDATE <= GETDATE() THEN  SETTLEAMOUNTCUR ELSE 0 END AS SETTLEAMOUNTCUR,
            AMOUNTMST,
            CASE WHEN LASTSETTLEDATE <= GETDATE() THEN  SETTLEAMOUNTMST ELSE 0 END AS SETTLEAMOUNTMST,
            CURRENCYCODE,
            EXCHADJUSTMENT,
            RECID,
            CASE WHEN LASTSETTLEDATE <= GETDATE() THEN  (AMOUNTMST - SETTLEAMOUNTMST + EXCHADJUSTMENT) ELSE AMOUNTMST END AS MT,
            CASE WHEN LASTSETTLEDATE <= GETDATE() THEN  (AMOUNTCUR - SETTLEAMOUNTCUR) ELSE AMOUNTCUR END AS MT_DEVISE,
            CASE WHEN LASTSETTLEDATE <= GETDATE() THEN  ABS(AMOUNTCUR - SETTLEAMOUNTCUR) ELSE ABS(AMOUNTCUR) END AS ABS_MT_DEVISE,
            DIMENSION5_ as CODE_OM,
            YLFHOUSEBILLNO as HB_NO
        FROM
            CUSTTRANS 
     
        WHERE 
            TRANSDATE <= GETDATE()
     
        GROUP BY    
            ACCOUNTNUM, 
            TXT, 
            TRANSDATE, 
            LASTSETTLEDATE,
            DUEDATE,
            VOUCHER,
            INVOICE, 
            DIMENSION7_, 
            DIMENSION6_, 
            DIMENSION, 
            DOCUMENTDATE, 
            CLOSED,
            AMOUNTCUR, 
            SETTLEAMOUNTCUR,
            CURRENCYCODE,
            AMOUNTMST, 
            SETTLEAMOUNTMST,
            EXCHADJUSTMENT,
            RECID,
            AMOUNTMST - SETTLEAMOUNTMST,
            AMOUNTCUR - SETTLEAMOUNTCUR,
            DIMENSION5_,
            YLFHOUSEBILLNO
        HAVING (SUM(AMOUNTCUR) - SUM(SETTLEAMOUNTCUR)<> 0) OR ((SUM(AMOUNTCUR) - SUM(SETTLEAMOUNTCUR)= 0) AND LASTSETTLEDATE > GETDATE())
     
    order by ACCOUNTNUM, ABS_MT_DEVISE

    Si quelqu'un a une idée, je prends ;-)
    Merci d'avance!!!

  6. #6
    Membre éclairé Avatar de GeekMokona
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2011
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2011
    Messages : 327
    Points : 817
    Points
    817
    Par défaut
    si ton BDD Microsoft Dynamics AX est installé sur un SQL Serveur regarde du coté des CTE pour la table temporaire et Row_Number() Over (order by ACCOUNTNUM, ABS_MT_DEVISE ) pour avoir un numéro de ligne

    Regarde ici : http://technet.microsoft.com/fr-fr/l...=sql.105).aspx
    Séverine Capon - Consultante MS BI
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Merci de dés que le commentaire vous a aidé ou de marquer si votre problème est résolu

  7. #7
    Membre à l'essai
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 23
    Points
    23
    Par défaut
    Merci! Je savais que je pouvais utiliser Row_Number dans SSRS mais pas dans ma requête SQL.... Je teste cela tout de suite...
    Merci beaucoup pour ton aide!

  8. #8
    Membre à l'essai
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 23
    Points
    23
    Par défaut
    Merci pour ton aide! J'ai testé ton astuce et ça fonctionne parfaitement. J'ai uniquement récupéré la valeur d'après avec ma requête SQL puis testé cette valeur et la valeur précédente avec une expression qui permet de masquer la ligne :

    =(Fields!ABS_MT_DEVISE.Value<>Previous(First(Fields!ABS_MT_DEVISE.Value))) and (Fields!ABS_MT_DEVISE.Value<>Fields!MT_APRES.Value)

    Encore merci!
    Bonne journée

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/11/2009, 11h55
  2. Réponses: 1
    Dernier message: 13/05/2007, 13h25
  3. Réponses: 7
    Dernier message: 28/06/2005, 11h53
  4. Réponses: 8
    Dernier message: 14/05/2004, 11h18
  5. [VB6]Changer la couleur d'une ligne d'un ListView
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/03/2003, 17h02

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