PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Comment modifier la Police de l'en-tête d'une colonne dans un champ Table par programmation ?
Comment modifier la Police de l'en-tête d'une colonne dans un champ Table par programmation ?
Débuté par OLI, 22 sep. 2025 10:36 - 4 réponses
Membre enregistré
17 messages
Posté le 22 septembre 2025 - 10:36
Bonjour,
j'utilise la version WD2024 (W29F235074)
Voici le contexte, il m'est demandé de permettre à un utilisateur de répartir des articles d'une commande sur différentes palettes. Il n'existe pas moins de 60 palettes, où, un même article peut y être déposé selon les différents regroupements d'un préparateur de commandes décidera pour remplir les palettes de ses commandes.
Je travaille avec un champ Table qui possède donc, en plus de la description de l'article et d'autres informations, 60 colonnes, où le préparateur indique le nombre d'articles à déposer sur cette palette. J'affiche les premières colonnes des palettes (de 1 à 8 +- selon la taille de l'écran du préparateur) mais si cette personne désire déposer l'article "A" sur la palette 57, il est obligé de scroller vers la droite pour atteindre la colonne représentant la quantité de la palette 57.
Ce que j'ai fait pour le moment, c'est de colorier la colonne ...
//-----------------------------------------------------------//
// Calculer le nombre de palettes utilisées
nNoColonne est un entier
mnTotPalettesUtilisees = 0
// polPoliceEnGras est une police
// polPoliceEnGras.Gras = vrai
POUR nNoColonne = 8 _À_ 67
msNomColonne = TableEnumèreColonne(TABLE_DETAILS_BL, nNoColonne)
SI {msNomColonne,indChamp}[ligneTotal] > 0 ALORS
mnTotPalettesUtilisees++
{msNomColonne,indChamp}..CouleurFond = RGB(2,172,84)
{msNomColonne,indChamp}..Couleur = RGB(255,255,255)
//{msNomColonne,indChamp}..Style = polPoliceEnGras // Erreur 10017: La propriété Style n'existe pas sur la colonne ...
SINON
SI {msNomColonne,indChamp}..CouleurFond = RGB(2,172,84) ALORS
{msNomColonne,indChamp}..CouleurFond = RGB(255,255,255)
{msNomColonne,indChamp}..Couleur = RGB(0,0,0)
FIN
FIN
FIN
LIB_NB_PAL.Libellé = ChaîneConstruit(gTraduire("Nombre de palettes utilisées : %1"),mnTotPalettesUtilisees)
SAI_NBR_PAL = mnTotPalettesUtilisees

Cela donne le résultat suivant :





Cependant, je voudrais également parvenir à modifier l'en-tête d'une colonne, par exemple ici, après que l'utilisateur a indiqué "1" pour un article et mettre cet en-tête (encadré en rouge sur ma capture d'écran) en gras ou agrandir sa taille, cela afin d'avoir un moyen visuel supplémentaire pour le préparateur qui peut repérer directement là où il a indiqué des quantités.
J'ai essayé plusieurs choses (Police, Style, propriété "entête", ...) mais je n'y parviens pas :(
Quelqu'un aurait-il une idée de comment y parvenir ou mieux encore aurait rencontré le même souci que moi ?
En attendant de vous lire, je vous souhaite une bonne journée à toutes et tous ;-)
Membre enregistré
4 271 messages
Posté le 22 septembre 2025 - 11:06
Bonjour,
A première vue :
{msNomColonne,indChamp}..Libellé=gPoliceGras()+{msNomColonne,indChamp}..Libellé


--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Membre enregistré
2 272 messages
Posté le 22 septembre 2025 - 11:56
Bonjour,

Pour faire simple, je dirais : faire une 2ème table à droite de la 1ère liée par le numéro de commande.
Pour chaque ligne : Nro de palette et Quantité.
Voila. 8)

--
Bon dev,
Jean-Pierre
Membre enregistré
17 messages
Posté le 22 septembre 2025 - 16:47
Merci Voroltinquo ;) gPoliceGras(), évidemment 8)... suis encore un grand débutant à côté de vous :merci:
Membre enregistré
17 messages
Posté le 22 septembre 2025 - 16:53
Merci Jean-Pierre ;) J'y ai pensé et même testé. Scroller vers la droite est pas super convivial je trouve, lister les palettes ne l'est pas non plus :( J'ai, certes, le nombre d'articles par palette, mais le préparateur doit voir le code article et donc je me retrouve avec une liste du style
N° de palette | Qté | Article
12 | 2 | Article A
28 | 4 | Article A
28 | 2 | Article B
28 | 4 | Article C
19 | 4 | Article A
etc, etc, ...
Merci pour votre aide :merci: