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

WinDev Discussion :

[WD10] changer couleur sur ligne table à chaque annee differente


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 179
    Points : 108
    Points
    108
    Par défaut [WD10] changer couleur sur ligne table à chaque annee differente
    Bonjour

    Dans une table, j'ai des lignes regroupées par une colonne correspondant à l'année.
    Dès qu'on change d'année, je voudrais changer de couleur de fond.

    Pour le moment, j'arrive à changer entre deux années différentes mais dès qu'une troisième arrive, j'ai du mal à voir la logique.

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //on colore les lignes d'une couleur différente selon l'année
    color_annee=TABLE.ANNEE[1]
    POUR i = 1 A TableOccurrence(TABLE)
    SI color_annee=TABLE.ANNEE[i] ALORS
    ANNEE[i]..CouleurFond=RVB(204,255,102)
    SINON
    ANNEE[i]..CouleurFond=RVB(255,255,153)
    FIN
    //color_annee=TABLE.ANNEE[i] 
    FIN
    Si vous avez des idées, elles seront les bienvenues !!
    Bonne journée
    caroline

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    Méthode 1 :
    Tu sais à l'avance les couleurs que tu veux affecter aux années. Dans le cas où tu n'en as pas beaucoup, tu peux créer une table cachée contenant pour chaque année une couleur que tu définis. Ensuite dans le code d'affichage d'une ligne de la table tu fais la correspondance entre l'année de ta table d'affichage et la couleur de cette année pour ta table cachée.

    Avantages :
    - pas besoin de détecter les changements d'années, puisque la clé est sur la valeur de l'année

    Inconvénients :
    - peut être fastidieux s'il y a beaucoup d'années avec des couleurs différentes
    - obligation de connaitre toutes les années possibles dans ton programme



    Méthode 2 :
    Dans le code d'affichage d'une ligne de la table, tu testes la valeur de la cellule année précédente (sauf pour la première), et quand tu détectes un changement tu changes la couleur en utilisant RVB(Hasard(0,255),Hasard(0,255),Hasard(0,255)).


    Avantages :
    - pas besoin de se baser sur une table annexe, chaque année aura sa propre couleur générée aléatoirement

    Inconvénients :
    - aucun contrôle sur les couleurs générées, ce qui peut produire des résultats pas très heureux
    - nécessite que la table soit triée sur l'année si tu veux être sûre d'avoir la même couleur pour la même année

  3. #3
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 179
    Points : 108
    Points
    108
    Par défaut
    Voici le code que j'ai appliqué.

    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
    color_annee est un entier =Table1.Annee[1]..Couleur = RVB(204,255,102)
    i est un entier
    col est un entier = RVB(204,255,102)
    POUR i = 2 A TableOccurrence(Table1)
     
    SI color_annee=Table1.Annee[i] ALORS
    col=Annee[i-1]..CouleurFond
    SINON
    SI col = RVB(204,255,102) ALORS
    col=RVB(255,255,153)
    SINON
    col = RVB(204,255,102)
    FIN
    FIN
     
    Annee[i]..CouleurFond=col
    color_annee = Table1.Annee[i]
    FIN

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Merci pour la solution

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/02/2015, 10h02
  2. précédent/suivant sur ligne table MyISAM
    Par Marie08 dans le forum Requêtes
    Réponses: 6
    Dernier message: 25/08/2011, 19h57
  3. Changement de couleur sur ligne de tableau
    Par topolino dans le forum jQuery
    Réponses: 6
    Dernier message: 12/11/2010, 17h02
  4. Gridview+changer couleur de ligne apres selection
    Par lg022 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/07/2008, 12h22
  5. [WD10] Requete Update sur 2 tables
    Par mogwai162 dans le forum WinDev
    Réponses: 2
    Dernier message: 29/03/2007, 14h49

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