PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → [WD23] Problème couleur de fond dans table
[WD23] Problème couleur de fond dans table
Iniciado por Maxime D, 28,dic. 2018 15:55 - 8 respuestas
Miembro registrado
48 mensajes
Publicado el 28,diciembre 2018 - 15:55
Bonjour,
j'essaie de mettre un fond de couleur pour les lignes où le client est "blacklisté", cette table est rempli par accès direct à un fichier requête, cependant, la couleur de fond ne change pas lorsqu'il s'agit de modifier ligne par ligne.
J'arrive à changer la couleur de fond totale de la table et si je ne rajoute pas le numéro de ligne qui doit changer de couleur de fond, mais impossible de ne modifier qu'une seule ligne.
(J'ai vérifié que les conditions fonctionnaient correctement)

POUR TOUTE LIGNE de Table_clients
i += 1
SI CLI_BLACKLIST = 1 ALORS
Table_clients[i]..CouleurFond = RVB(255,0,0)
FIN
FIN


J'ai essayé une autre méthode pour régler ce problème avec ce morceau de code.

POUR TOUT Requete_ListeClients
i += 1
SI Requete_ListeClients .CLI_BLACKLIST = 1 ALORS
T_clients[i]..CouleurFond = RVB(255,0,0)
FIN
FIN


Ce code fonctionne correctement cependant lorsque l'utilisateur demande de trié selon tel ou tel critères, la couleur ne pourra pas suivre la position des lignes et cela pose problème, d'où l'essai avec la première méthode.

Si vous avez une idée de pourquoi je ne peux pas modifier la couleur de fond lorsque j'essaie de parcourir la table client.

Merci d'avance.
Publicado el 29,diciembre 2018 - 12:17
Bonjour

tester ceci :

dans le code de "Affichage d'une ligne de table" :
SI TABLE.CLI_BLACKLIST = 1 ALORS
Table_clients[IndiceEnCours()]..CouleurFond = RVB(255,0,0)
FIN


Bon dev.
Publicado el 30,diciembre 2018 - 03:37
Le 28/12/2018 à 14:55, Maxime DEMUNCK a écrit :
POUR TOUTE LIGNE DE Table_clients
    i += 1
    SI CLI_BLACKLIST = 1 ALORS
        Table_clients[i]..CouleurFond = RVB(255,0,0)
    FIN
FIN

et si tu mettais ceci
POUR TOUTE LIGNE DE Table_clients
i += 1
SI CLI_BLACKLIST = 1 ALORS
Table_clients[i]..CouleurFond = RVB(255,0,0)
sinon
Table_clients[i]..CouleurFond = iCouleurDéfaut
FIN
FIN


pour ma part je fais cela dans l'affichage de la ligne

SI TABLEFC..Vide ALORS RETOUR

SI FCNCOMTE[TABLEFC] > 1 ALORS
TABLEFC[TABLEFC]..CouleurFond = MagentaPastel
FIN
SI FCNETAT[TABLEFC] = 1 ALORS
TABLEFC[TABLEFC]..CouleurFond = RougePastel
FIN

cela marche aussi
Bon windev
Miembro registrado
48 mensajes
Publicado el 03,enero 2019 - 15:10
Merci de vos réponses, j'ai essayé ce que vous avez proposé mais cela me donne toujours aucun résultat.

J'ai donc décider de remplir la table directement par programmation et d'y affecter la couleur de fond aussitôt et cela à fonctionner.

Merci quand même.
Miembro registrado
11 mensajes
Publicado el 20,febrero 2019 - 11:58
J'ai rencontré le même problème.
La solution :
- Aller dans la description de la TABLE
- Dans la partie Contenu : Cocher 'Chargé en mémoire'
Publicado el 22,noviembre 2019 - 13:30
Bonjour,

Dans le même cadre que mes petits camarades, j'ai un problème avec les couleurs des lignes d'une table chargée en mémoire et non en ligne.
La prise en compte du changement de couleur selon un critère n'est effective qu'au changement de ligne et non immédiatement.
Y a t-il une opération à lancer pour rendre la modif de couleur effective ou c'est un pb ?
Pour info, le demande de changement de couleur doit se faire après le clic d'une case à cocher dans la table. pour bien souligner l'opération faite.

Merci de vos termpete de cerveau pour résoudre ça .

AZERTYment.

JPP
Publicado el 22,noviembre 2019 - 14:22
Bonjour,
Regarde du coté de Survol souris (WM_MOUSEMOVE) sur Nom de ta Table

Tu récupères les infos de la cellule avec les instructions suivantes, et après suivant les conditions que tu veux tu peux changer la couleur de la cellule ....

Ci_dessous un exemple que j'utilise pour a afficher une image sir la souris passe sur une case contenant le nom d'un fichier jpg
Ligne est entier
Colonne est une chaîne
Num_col est entier
Nom_Champ est un Champ
Mon_contenu est une chaîne
LISTE_Var_BC..Visible = Faux
BTN_Voir_Var_BC..Enfoncé = Faux
LISTE_Var_PL..Visible = Faux
BTN_Voir_Var_PL..Enfoncé = Faux
LISTE_Var_LB..Visible = Faux
BTN_Voir_Var_LB..Enfoncé = Faux


Ligne = TableInfoXY(TABLE_PRODUITS, tiNumLigne, SourisPosX(), SourisPosY())
Colonne = TableInfoXY(TABLE_PRODUITS, tiNomColonne, SourisPosX(), SourisPosY())
Num_col = TableInfoXY(TABLE_PRODUITS, tiNumColonne, SourisPosX(), SourisPosY())
SI Ligne < 1 ALORS RETOUR

Nom_Champ <- TableEnumèreColonne(FEN_PRINCIPALE.TABLE_PRODUITS,Num_col)
Mon_contenu ={"TABLE_PRODUITS"+"."+Colonne}[Ligne]

SI Mon_contenu <> IMG_Visu_JPG_Base ALORS
IMG_Visu_JPG_Base = gsChemin_Base_Images+"\"+ Mon_contenu+".bmp"
FIN

// Affichage information champ
SI gnMem_Col<> Num_col ALORS
gnMem_Col = Num_col
REQ_Trouver_Commentaire_Champ.ParamChamp_Base =SansEspace( Nom_Champ..Titre)
HExécuteRequête(REQ_Trouver_Commentaire_Champ,hRequêteDéfaut)
HLitPremier(REQ_Trouver_Commentaire_Champ)
LIB_Information=REQ_Trouver_Commentaire_Champ.Commentaire
FIN
Publicado el 23,noviembre 2019 - 09:42
Merci pour l'exemple je vais explorer cette voie.

Pour préciser le pb, ma table a en 1ere colonne visible un champ interrupteur dont la coche est à vrzi ou faux selon la lecture initiale du fichier mis en mémoire.
Je veux qu'on puisse cocher ou décocher une ligne et qu'au moment où on change ce champ, la couleur de la ligne change aussi.
J'ai mis le code dans "A chaque modification" du champ inter. Le code s'exécute mais la prise en compte de la couleur est effective au passage sur une autre ligne.
Comme s'il y a avait une validation qui se faisait à ce moment là et pas avant.
Comprend vraiment pas comment faire. Un TableAffiche ne change rien non plus.

S'il y des explications je suis preneur.

AZERTYment.

JPP
Publicado el 23,noviembre 2019 - 15:36
EUREKA !

Ne cherchez plus ! J'ai trouvé et c'était très bête en faite. C'est la couleur de la ligne de sélection qui masquait celle mise par programme dans l’événement.
En la passant en "transparent", tout est rentré dans l'ordre., La couleur de ligne est bien celle demandée par le clic sur la case à cocher.
Donc, tout est bien qui finit bien.

J'aime quand un plan se déroule sans accroc !

AZERTYment.

JPP