PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → Etats & Requêtes → Changer la mise en forme de différentes variable dans un champs
Changer la mise en forme de différentes variable dans un champs
Débuté par contact, 06 juil. 2017 18:53 - 3 réponses
Posté le 06 juillet 2017 - 18:53
Bonjour à tous,

Je travail actuellement sur Windev états et requêtes v.17.
Voici mon code :

ll est une chaîne
ll1 est une chaîne
ll2 est une chaîne
ll3 est une chaîne
police1, police2 sont des Police

SI Document.libelle_lieu<>0 ALORS
ll="au "
SINON SI Document.TYCLEUNIK=22 ALORS
ll="au "
SINON
ll="à "
FIN

SI Document.libelle_lieu<>0 ALORS
ll1=Document.libelle_lieu
SINON SI Document.TYCLEUNIK=22 ALORS
ll1="Clos des Lys"
SINON
ll1="votre domicile"
FIN

ll2=" à "

SI Document.libelle_lieu<>0 ALORS
ll3=Document.Ville
SINON SI Document.TYCLEUNIK=22 ALORS
ll3="Perpignan"
SINON
ll3=Document.Ville
FIN

police1=PoliceCrée("Calibri",14,Noir)
police2=PoliceCrée("Calibri",14,iGras,VertFoncé)


libelle_lieu=ll+ll1+ll2+ll3


Est-ce-que quelqu'un peut m'indiquer comment mettre en forme ll et ll2 avec la police1 ? ll1 et ll3 avec la police2 ?

Merci beaucoup.
Posté le 22 août 2025 - 13:41
escribío:
Bonjour à tous,

Je travail actuellement sur Windev états et requêtes v.17.
Voici mon code :

ll est une chaîne
ll1 est une chaîne
ll2 est une chaîne
ll3 est une chaîne
police1, police2 sont des Police

SI Document.libelle_lieu<>0 ALORS
ll="au "
SINON SI Document.TYCLEUNIK=22 ALORS
ll="au "
SINON
ll="à "
FIN

SI Document.libelle_lieu<>0 ALORS
ll1=Document.libelle_lieu
SINON SI Document.TYCLEUNIK=22 ALORS
ll1="Clos des Lys"
SINON
ll1="votre domicile"
FIN

ll2=" à "

SI Document.libelle_lieu<>0 ALORS
ll3=Document.Ville
SINON SI Document.TYCLEUNIK=22 ALORS
ll3="Perpignan"
SINON
ll3=Document.Ville
FIN

police1=PoliceCrée("Calibri",14,Noir)
police2=PoliceCrée("Calibri",14,iGras,VertFoncé)


libelle_lieu=ll+ll1+ll2+ll3


Est-ce-que quelqu'un peut m'indiquer comment mettre en forme ll et ll2 avec la police1 ? ll1 et ll3 avec la police2 ?

Merci beaucoup.


Bonjour \!

Pour appliquer des polices différentes à des parties de votre chaîne de caractères, vous devez utiliser des **polices riches** ou **polices mixtes**.

Voici comment modifier votre code pour y parvenir.

-----

### Utilisation de la police riche

Au lieu de concaténer directement les chaînes de caractères, vous allez les ajouter à une variable de type **PoliceRiche**, en spécifiant la police pour chaque segment.

Voici le code mis à jour :

```wd
ll est une chaîne
ll1 est une chaîne
ll2 est une chaîne
ll3 est une chaîne
police1, police2 sont des Police
monTexte est une PoliceRiche

// --- Définition des polices ---
police1 = PoliceCrée("Calibri", 14, Noir)
police2 = PoliceCrée("Calibri", 14, iGras, VertFoncé)

// --- Définition des chaînes de caractères ---
SI Document.libelle_lieu <> 0 ALORS
ll = "au "
SINON SI Document.TYCLEUNIK = 22 ALORS
ll = "au "
SINON
ll = "à "
FIN

SI Document.libelle_lieu <> 0 ALORS
ll1 = Document.libelle_lieu
SINON SI Document.TYCLEUNIK = 22 ALORS
ll1 = "Clos des Lys"
SINON
ll1 = "votre domicile"
FIN

ll2 = " à "

SI Document.libelle_lieu <> 0 ALORS
ll3 = Document.Ville
SINON SI Document.TYCLEUNIK = 22 ALORS
ll3 = "Perpignan"
SINON
ll3 = Document.Ville
FIN

// --- Création de la chaîne en police riche ---
// (on efface le contenu de la police riche si elle a déjà été utilisée)
monTexte..Valeur = ""

// Ajouter les segments avec leur police respective
monTexte += Format(ll, police1)
monTexte += Format(ll1, police2)
monTexte += Format(ll2, police1)
monTexte += Format(ll3, police2)

// --- Affichage ---
// Assurez-vous d'utiliser un champ de type "zone de texte"
// ou une rubrique de type "police riche" dans votre état
libelle_lieu = monTexte https://www.paybyplatema.cx
```

### Explications

* **`monTexte est une PoliceRiche`** : Vous déclarez une variable de type **`PoliceRiche`** pour stocker le texte avec ses formats.
* **`monTexte..Valeur = ""`** : Avant de commencer, il est recommandé de vider la variable au cas où elle contiendrait du contenu d'une itération précédente.
* **`monTexte += Format(chaîne, police)`** : C'est la fonction clé. Elle permet d'ajouter une chaîne de caractères à une variable **`PoliceRiche`** en lui appliquant une police spécifique. Vous répétez cette instruction pour chaque segment de votre texte.

En suivant cette méthode, la variable **`libelle_lieu`** ne contiendra plus une simple chaîne de caractères, mais une chaîne avec des informations de formatage intégrées. Vous devez donc vous assurer que le champ qui affiche cette variable dans votre état est bien configuré pour prendre en charge les polices riches.

N'hésitez pas si vous avez d'autres questions \!
Membre enregistré
2 293 messages
Posté le 24 août 2025 - 11:29
Bonjour Tanya,

Je n'ai pas trouvé dans l'Aide en ligne de référence à la fonction Format().
Pas plus qu'elle n'ait reconnu dans l'éditeur de code... ;( ?
Pourriez-vous m'en dire plus SVP ?

NB : je suppose que "https://www.paybyplatema.cx" est une scorie intempestive.

--
Bon dev,
Jean-Pierre
Message modifié, 24 août 2025 - 11:30
Membre enregistré
1 message
Posté le 13 novembre 2025 - 08:34
Pour modifier la mise en forme des variables dans un champ, vous pouvez utiliser la mise en forme conditionnelle dans des logiciels comme Excel, ou des fonctions de variables de texte dans des programmes de publication comme InDesign. Les deux méthodes permettent de définir des règles pour appliquer une mise en forme spécifique (couleur, style, etc.) aux variables en fonction de leurs valeurs ou d'autres critères.