PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → Etats & Requêtes → COMMENT CENTRER DES CHAINES via code svp
COMMENT CENTRER DES CHAINES via code svp
Débuté par xavier-fournier, 13 sep. 2019 17:01 - 2 réponses
Posté le 13 septembre 2019 - 17:01
Bonjour à tous,

Voilà, je ne suis pas doué sous windev et je recherche une âme charitable pour m'aider à centrer les valeurs des chaînes suivantes :

CODE_BARRES2 = BONPREPA_QR_D_054.Ref_com_AZU + Caract(10) + BONPREPA_QR_D_054.Ref_AZU + Caract(13) + BONPREPA_QR_D_054.NOMTIERS + Caract(10) + ENTCDE.LIV_VILLE

Actuellement cela donne cela :

AF D29860
1748348
SUBCONTR. DE WAGENER
LENGERICH

Sauf que j'aimerai que cela apparaisse comme cela :

AF D29860
1748348
SUBCONTR. DE WAGENER
LENGERICH

J'ai essayé de "feinter" en y employant ce code, mais evidemment selon la longueur d'une des chaînes, tout peut être décalées.. :

comp1 est une chaîne fixe sur 16 = Répète( " ",16)
BONPREPA_QR_D_054.Ref_com_AZU=Droite(comp1+BONPREPA_QR_D_054.Ref_com_AZU,16)
BONPREPA_QR_D_054.Ref_AZU=Droite(comp1+BONPREPA_QR_D_054.Ref_AZU,16)
BONPREPA_QR_D_054.NOMTIERS=Droite(comp1+BONPREPA_QR_D_054.NOMTIERS,16)
ENTCDE.LIV_VILLE=Droite(comp1+ENTCDE.LIV_VILLE,16)

Ma petite question est donc comment et avec quel code puis je m'en sortir afin d'aligner mes valeurs svp ?

Un très grand merci à tous !

Xavier
Posté le 24 octobre 2024 - 13:15
XMCCAIRN escribío:
Bonjour à tous,

Voilà, je ne suis pas doué sous windev et je recherche une âme charitable pour m'aider à centrer les valeurs des chaînes suivantes :

CODE_BARRES2 = BONPREPA_QR_D_054.Ref_com_AZU + Caract(10) + BONPREPA_QR_D_054.Ref_AZU + Caract(13) + BONPREPA_QR_D_054.NOMTIERS + Caract(10) + ENTCDE.LIV_VILLE

Actuellement cela donne cela :

AF D29860
1748348
SUBCONTR. DE WAGENER
LENGERICH

Sauf que j'aimerai que cela apparaisse comme cela :

AF D29860
1748348
SUBCONTR. DE WAGENER
LENGERICH

J'ai essayé de "feinter" en y employant ce code, mais evidemment selon la longueur d'une des chaînes, tout peut être décalées.. :

comp1 est une chaîne fixe sur 16 = Répète( " ",16)
BONPREPA_QR_D_054.Ref_com_AZU=Droite(comp1+BONPREPA_QR_D_054.Ref_com_AZU,16)
BONPREPA_QR_D_054.Ref_AZU=Droite(comp1+BONPREPA_QR_D_054.Ref_AZU,16)
BONPREPA_QR_D_054.NOMTIERS=Droite(comp1+BONPREPA_QR_D_054.NOMTIERS,16)
ENTCDE.LIV_VILLE=Droite(comp1+ENTCDE.LIV_VILLE,16)

Ma petite question est donc comment et avec quel code puis je m'en sortir afin d'aligner mes valeurs svp ?

Un très grand merci à tous !

Xavier


Bonjour Xavier,

Pour centrer les valeurs dans Windev, tu peux utiliser la fonction Répète pour ajouter des espaces de chaque côté de chaque chaîne, en fonction de la longueur maximale de la chaîne que tu souhaites afficher. Voici une approche pour centrer chaque valeur dans un champ de largeur fixe :

Détermine la largeur maximale que tu souhaites pour chaque ligne (par exemple, 30 caractères).
Calcule le nombre d'espaces nécessaires de chaque côté pour centrer la chaîne.
Voici un exemple de code :
// Définir la largeur maximale
largeurMax = 30

// Fonction pour centrer une chaîne
CentreTexte = PROCEDURE texte
longueurTexte = Longueur(texte)
si longueurTexte >= largeurMax alors
RESULTAT = texte // Pas de centrage si la chaîne est trop longue
sinon
espaces = (largeurMax - longueurTexte) / 2
comp1 = Répète(" ", Entier(espaces)) // Espaces à gauche
comp2 = Répète(" ", largeurMax - longueurTexte - Entier(espaces)) // Espaces à droite
RESULTAT = comp1 + texte + comp2
fin
FIN

// Appliquer le centrage à chaque valeur
CODE_BARRES2 =
CentreTexte(BONPREPA_QR_D_054.Ref_com_AZU) + Caract(10) +
CentreTexte(BONPREPA_QR_D_054.Ref_AZU) + Caract(10) +
CentreTexte(BONPREPA_QR_D_054.NOMTIERS) + Caract(10) +
CentreTexte(ENTCDE.LIV_VILLE)
Cette approche te permettra de centrer chaque valeur dans un espace fixe. Tu peux ajuster la largeurMax selon tes besoins. Si une chaîne est plus longue que la largeur maximale, elle ne sera pas tronquée, mais tu peux décider de gérer cela en ajoutant une condition pour la tronquer si nécessaire.

Bonne chance avec ton projet !
https://www.starbucks-secretmenu.com
Membre enregistré
2 messages
Posté le 04 décembre 2024 - 06:09
xavier-fournier escribió:
Bonjour à tous,

Voilà, je ne suis pas doué sous windev et je recherche une âme charitable pour m'aider à centrer les valeurs des chaînes suivantes :

CODE_BARRES2 = BONPREPA_QR_D_054.Ref_com_AZU + Caract(10) + BONPREPA_QR_D_054.Ref_AZU + Caract(13) + BONPREPA_QR_D_054.NOMTIERS + Caract(10) + ENTCDE.LIV_VILLE

Actuellement cela donne cela :

AF D29860
1748348
SUBCONTR. DE WAGENER
LENGERICH

Sauf que j'aimerai que cela apparaisse comme cela :

AF D29860
1748348
SUBCONTR. DE WAGENER
LENGERICH

J'ai essayé de "feinter" en y https://www-edfinancial.com employant ce code, mais evidemment selon la longueur d'une des chaînes, tout peut être décalées.. :

comp1 est une chaîne fixe sur 16 = Répète( " ",16)
BONPREPA_QR_D_054.Ref_com_AZU=Droite(comp1+BONPREPA_QR_D_054.Ref_com_AZU,16)
BONPREPA_QR_D_054.Ref_AZU=Droite(comp1+BONPREPA_QR_D_054.Ref_AZU,16)
BONPREPA_QR_D_054.NOMTIERS=Droite(comp1+BONPREPA_QR_D_054.NOMTIERS,16)
ENTCDE.LIV_VILLE=Droite(comp1+ENTCDE.LIV_VILLE,16)

Ma petite question est donc comment et avec quel code puis je m'en sortir afin d'aligner mes valeurs svp ?

Un très grand merci à tous !

Xavier



Pour centrer les valeurs dans WinDev, utilise la fonction Répète pour ajouter des espaces de part et d'autre de la chaîne, en fonction de la largeur désirée. Voici une méthode : détermine une largeur maximale (ex. 30 caractères), calcule les espaces nécessaires de chaque côté, puis assemble le tout. Si la chaîne dépasse cette largeur, elle reste inchangée, mais tu peux prévoir une gestion pour la tronquer si besoin. Bon courage avec ton développement !