PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2025 → WD2024: Comment faire varier la couleur d'une jauge dans une colonne d'un champ table ?
WD2024: Comment faire varier la couleur d'une jauge dans une colonne d'un champ table ?
Iniciado por OLI, ago., 09 2025 4:33 PM - 9 respostas
Membro registado
19 mensagems
Publicado em agosto, 09 2025 - 4:33 PM
Bonjour,
j'utilise WD2024(W29F235074).
Je voudrais afficher un pourcentage dans une colonne et pour ce faire j'ai défini la colonne comme étant de type jauge.
Je souhaiterais afficher la couleur de la jauge en rouge si la valeur du pourcentage est négative et en vers si cette valeur est positive. J'ai parcouru la documentation et je n'ai rien trouvé qui puisse m'aider (https://doc.pcsoft.fr/?1000018156&name=couleurjauge_propriete)
Avec les valeurs positives, le pourcentage est affiché correctement :





Pour les valeurs négatives, rien ne s'affiche !





Je remplis la table par programmation.
J'ai positionné également une jauge à l'extérieur de la table pour afficher la valeur de la colonne (-34% sur la capteur d'écran)
Après avoir rempli la table je fais la boucle suivante :

POUR i = 1 _À_ TableOccurrence(TABLE_ListeKPI)
SI TABLE_ListeKPI.COL_PRCT_PERF[i] < 0 ALORS
TABLE_ListeKPI[i].COL_PRCT_PERF..CouleurJauge = RougeClair
SINON
TABLE_ListeKPI[i].COL_PRCT_PERF..CouleurJauge = VertClair
FIN
FIN
TableAffiche(TABLE_ListeKPI,taInit)


Dans la partie "Détail" de la description de mon champ table, pour cette colonne bien sûr, il existe une option "Jauge symétrique (avec valeurs négatives). Lorsqu'elle est cochée, lorsque la valeur est négative, cela s'affiche en rouge mais la jauge est comme coupée en deux :





Ce n'est pas possible de colorer la jauge comme l'est la colonne "% d'encodage" sur mon image ?
Qu'est-ce que j'ai loupé ?
Merci d'avance pour votre aide :)
Membro registado
1.011 mensagems
Publicado em agosto, 10 2025 - 2:12 AM
Bonjour,
Sans avoir essayé, il vous faut commencer par supprimer la dernière ligne dans le code que vous présentez :

TableAffiche(TABLE_ListeKPI,taInit)


Cette ligne réinitialise l'affichage de la table et supprime donc la coloration que vous avez appliqué avec les lignes de code précédentes.
Ensuite, essayer de définir dans la description de la table (sur la colonne) une valeur d'origine négative (-50 par exemple).

Je ne suis pas certain du résultat mais c'est un début.

Cdlt
Mensagem modificada, agosto, 10 2025 - 2:15 AM
Membro registado
19 mensagems
Publicado em agosto, 11 2025 - 9:30 AM
Bonjour Cédric, ;) déjà merci pour la correction, j'avais en effet oublié d'enlever cette ligne de code ;(
Le pourcentage peut aller jusque -100, j'ai donc configuré comme indiqué la valeur sur -100, le souci est que je n'ai pas toujours des valeurs car les pourcentages affichés dépendent de l'encodage des utilisateurs qui ne le font pas tous les jours...
Comme tu peux le voir sur la capture d'écran ci-dessous, le pourcentage positif s'affiche en blanc mais lorsqu'il est négatif je n'ai aucune valeur alors que la valeur existe !? J'ai parcouru les valeurs de la colonne, je ne vois pas pourquoi il ne m'affiche pas le pourcentage négatif, ni comment changer la couleur du texte de la valeur positive de la jauge, tu aurais une idée ?
Valeur positive :



Valeur négative :


Membro registado
1.011 mensagems
Publicado em agosto, 11 2025 - 11:48 AM
Bonjour
Je vous ai indiqué que je n'avais pas essayé car je n'ai pas accès à Windev en ce moment (mais j'ai accès à la doc en ligne).
Si je ne me trompe pas, il y a une case "Mise à blanc si zéro" dans la description de la colonne : Est-elle cochée ?

Je déduis de vos copies d'écran que si la valeur est négative, cela équivaut à zéro pour une jauge hormis pour une jauge symétrique.
Je ne vois qu'une solution pour le moment mais il faut accepter le concept, si la valeur est négative, vous la multipliez par -1, la valeur sera affichée positive mais dans une jauge rouge.
Dans ce cas, essayez de modifier votre code ainsi :

SI TABLE_ListeKPI.COL_PRCT_PERF[i] < 0 ALORS
TABLE_ListeKPI[i].COL_PRCT_PERF..CouleurJauge = RougeClair
TABLE_ListeKPI.COL_PRCT_PERF[i] = TABLE_ListeKPI.COL_PRCT_PERF[i] * -1


Si ceci fonctionne, vous avez confirmation qu'une valeur négative équivaut à 0.
Le résultat est-il acceptable pour vous ?

Dites-nous si ça fonctionne.
Cdlt
Mensagem modificada, agosto, 11 2025 - 11:55 AM
Membro registado
1.011 mensagems
Publicado em agosto, 11 2025 - 12:06 PM
J'ai oublié de répondre à la question de la couleur de texte de la valeur positive :

SINON
TABLE_ListeKPI[i].COL_PRCT_PERF..CouleurJauge = VertClair
TABLE_ListeKPI[i].COL_PRCT_PERF..Couleur = BleuClair
Membro registado
19 mensagems
Publicado em agosto, 13 2025 - 10:39 AM
Bonjour Cédric,
merci encore pour ton aide.
J'ai résolu mon souci, je trouve que le résultat n'est pas si mal, voic1 ce que j'ai fait :
1) Dans "Général" j'ai mis la valeur d'origine sur 0
2) Dans "Détail", je n'ai coché que "Afficher le pourcentage de progression"
3) Dans "Style" j'ai mis la valeur "Aucun" de la propriété "Trait" de l'élément "Séparateur vertical"
4) Quand je remplis ma table, lorsque mon KPI est négatif, je prends la valeur absolue, ainsi -70 ou 70 représente bien 70% de la jauge
5) J'ai mis une colonne juste avant mon KPI qui si la valeur est négative elle reçoit "-" sinon rien
6) J'ai colorié comme tu l'indiquait la jauge :
POUR i = 1 _À_ TableOccurrence(TABLE_ListePrctActivitesParJour)
SI TABLE_ListePrctActivitesParJour.COL_PRCT_PERF_REEL[i] < 0 ALORS
TABLE_ListePrctActivitesParJour[i].COL_PRCT_PERF..CouleurJauge = RougeClair
SINON
TABLE_ListePrctActivitesParJour[i].COL_PRCT_PERF..CouleurJauge = VertClair
FIN
FIN


Voici le résultat que je trouve pas mal, même il y a un petit écart entre le pourcentage et le signe "-" quand il est présent :





Qu'est-ce que tu en penses ?
Membro registado
1.011 mensagems
Publicado em agosto, 13 2025 - 10:54 AM
Bonjour,
Tu pourrais peut-être réduire l'écart du signe - en mettant cette colonne en cadrage Droit (et peut être un cadrage Gauche sur la valeur du pourcentage si c'est possible) pour les rapprocher.
Mais bravo, à force de persévérance :merci:

Cdlt
Membro registado
1.011 mensagems
Publicado em agosto, 13 2025 - 12:28 PM
A propos, vu la copie d'écran, n'était-il pas possible de placer une colonne avec les valeurs (positives ou négatives) : Ainsi l'écart du signe - est résolu.
Donc une colonne Numérique et pas Jauge. Eventuellement remplie par programmation en récupérant les valeurs de la colonne Jauge.

Et une colonne qui n'affiche que la jauge en couleur.

Cdlt
Membro registado
19 mensagems
Publicado em agosto, 14 2025 - 3:43 PM
C'est ce que j'ai fait et j'ai réduit au maximum la colonne et l'espace reste ainsi, un peu large c'est vrai :(
Alors, juste après t'avoir écrit j'ai eu la même idée que toi !
Et donc :
POUR i = 1 _À_ TableOccurrence(TABLE_ListePrctActivitesParJour)
SI TABLE_ListePrctActivitesParJour.COL_PRCT_PERF_REEL[i] < 0 ALORS
TABLE_ListePrctActivitesParJour[i].COL_PRCT_PERF..CouleurJauge = RougeClair
TABLE_ListePrctActivitesParJour[i].COL_PRCT_PERF..Couleur = RougeClair
SINON
TABLE_ListePrctActivitesParJour[i].COL_PRCT_PERF..CouleurJauge = VertClair
TABLE_ListePrctActivitesParJour[i].COL_PRCT_PERF..Couleur = VertClair
FIN
FIN

Mais cela ne fonctionnait pas tout à fait car lorsque le pourcentage était trop faible, on voyait apparaître en vert ou en rouge une partie ou même entièrement le signe "%" ou un demi chiffre. Alors j'ai personnalisé la colonne et j'ai mis la police sur 4 !
Du coup le tête est tout petit, il ne se voit et voici le résultat, Il y a quand même un petit espace entre le "%" et la jauge m'est bon, je trouve ça pas mal du tout :p
merci encore à toi :merci:



Membro registado
1.011 mensagems
Publicado em agosto, 14 2025 - 6:04 PM
Bonjour,
Comme je ne peux pas essayer mais que je suis curieux, j'aimerai comprendre pourquoi tu appliques une couleur de texte de la même couleur que la jauge (pour cacher le texte ?). On peut dans la description décocher pour ne pas afficher la valeur du pourcentage, Non ?
La police a 4 est par la même occasion inutile si le texte n'est plus du tout affiché dans la jauge.
Cdlt