<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>12 Jul 2019 11:48:26 Z</lastBuildDate><pubDate>11 Jul 2019 16:34:29 Z</pubDate><description>Bonjour, j’essaie de mettre en place une liste de produits dans un champs RTF en formatant celle-ci&#13;
&#13;
Or après plusieurs heures de recherche avec toutes les fonctions RTF connues, je n'arrive à ce que je veux :&#13;
&#13;
Voici le résultat que j'aimerais avoir en pièce jointe :&#13;
https://drive.google.com/open?id=1laN4hjnkbAeIk6kuVHRQJF8phHn8yyEz&#13;
&#13;
Pour le code :&#13;
	* 1 Code Principal déclenché d'un bouton&#13;
        * 1 Fonction pour le formatage des Entêtes&#13;
        * 1 Fonction pour le Formatage des Valeurs&#13;
&#13;
Code Bouton&#13;
[code:wl]&#13;
//** Déclaration des Variables **&#13;
St_UnAccessoire est un Gp_TypS_LigneCmdeAccessoiresPose&#13;
Tab_MesAccessoires est un tableau de Gp_TypS_LigneCmdeAccessoiresPose&#13;
Ch_MaListe est une chaîne = RC					//** En formatant comme cela on sautera obligatoirement 2 lignes ** &#13;
Ch_TypePolice est une chaîne&#13;
i est un entier&#13;
j est un entier&#13;
Ch_ChaineRecap est une chaîne = ""&#13;
Ch_LigneAccessoire est une chaîne&#13;
Ent_PositionValeur est un entier&#13;
Ent_LongueurValeur est une entier&#13;
Ch_ValeurTexteEnCours est une chaîne&#13;
Ch_ValeurEntete_Ref est une chaîne = "Réf : "&#13;
Ch_ValeurEntete_Libelle est une chaîne = "Libellé : "&#13;
Ch_ValeurEntete_Qte est une chaîne = " Qté : "&#13;
Ch_ValeurEntete_Condit est une chaîne = "Condit : "&#13;
Ch_ValeurEntete_Longueur est une chaîne = "Lg : "&#13;
//** Création des Articles dans mon tableau normalement issu d'une fenêtre annexe mais pour test, on les valide dans le code **&#13;
POUR j = 1 À 5 PAS 1 &#13;
	St_UnAccessoire.MemStr_Ch_RefAcc = "REF " + j&#13;
	St_UnAccessoire.MemStr_Ch_LibelleAcc = "ARTICLE " + j&#13;
	St_UnAccessoire.MemStr_Num_QteAcc = j&#13;
	SELON EstPair(j)&#13;
		CAS Vrai : &#13;
			St_UnAccessoire.MemStr_Ch_Conditionnement = "U"&#13;
			St_UnAccessoire.MemStr_Ent_LongueurAcc = 0&#13;
		CAS Faux :&#13;
			St_UnAccessoire.MemStr_Ch_Conditionnement = "ML"&#13;
			St_UnAccessoire.MemStr_Ent_LongueurAcc = j * 1000&#13;
	FIN&#13;
	//** Ajout dans le tableau **&#13;
	TableauAjoute(Tab_MesAccessoires,St_UnAccessoire)&#13;
FIN&#13;
//** On parcours tous les accessoires **&#13;
POUR TOUT St_UnAccessoire DE Tab_MesAccessoires&#13;
	//**************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de l'entête REF **&#13;
	//**************************************************************************&#13;
	Ch_ValeurTexteEnCours = Ch_ValeurEntete_Ref&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les entêtes **&#13;
	ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//***************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de la Valeur REF **&#13;
	//***************************************************************************&#13;
	Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Ch_RefAcc&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les Valeurs **&#13;
	ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//******************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de l'entête LIBELLE **&#13;
	//******************************************************************************&#13;
	Ch_ValeurTexteEnCours = Ch_ValeurEntete_Libelle&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les entêtes **&#13;
	ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//*******************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de la Valeur LIBELLE **&#13;
	//*******************************************************************************&#13;
	Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Ch_LibelleAcc&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les Valeurs **&#13;
	ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//**************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de l'entête QTE **&#13;
	//**************************************************************************&#13;
	Ch_ValeurTexteEnCours = Ch_ValeurEntete_Qte&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les entêtes **&#13;
	ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//***************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de la Valeur QTE **&#13;
	//***************************************************************************&#13;
	Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Num_QteAcc&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les Valeurs **&#13;
	ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//*****************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de l'entête CONDIT **&#13;
	//*****************************************************************************&#13;
	Ch_ValeurTexteEnCours = Ch_ValeurEntete_Condit&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les entêtes **&#13;
	ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//******************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de la Valeur CONDIT **&#13;
	//******************************************************************************&#13;
	Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Ch_Conditionnement&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les Valeurs **&#13;
	ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//*******************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de l'entête LONGUEUR **&#13;
	//*******************************************************************************&#13;
	Ch_ValeurTexteEnCours = Ch_ValeurEntete_Longueur&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les entêtes **&#13;
	ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//********************************************************************************&#13;
	//** Ajout et récupération des éléments de positionnement de la Valeur LONGUEUR **&#13;
	//********************************************************************************&#13;
	Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Ent_LongueurAcc&#13;
	RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB)&#13;
	Ent_LongueurValeur = Taille(TxtChampRTF)&#13;
	Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours)&#13;
	Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours)&#13;
	//** Ensuite je sélectionne pour mettre en Forme les Valeurs **&#13;
	ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) &#13;
	//******************************&#13;
	//** Ajout d'un RC à la liste **&#13;
	//******************************&#13;
	RTFAjoute(TxtChampRTF,RC)&#13;
FIN&#13;
[/code]&#13;
&#13;
Code Formatage Entete&#13;
[code:wl]&#13;
PROCÉDURE ProcL_FormateEntete(LOCAL Ent_PosEntete est un entier,LOCAL Ent_LongueurEntete est un entier)&#13;
//** On formate les Titres **&#13;
RTFSélection(TxtChampRTF,rtfGras,Vrai,Ent_PosEntete,Ent_LongueurEntete)&#13;
RTFSélection(TxtChampRTF,rtfSouligné,Vrai,Ent_PosEntete,Ent_LongueurEntete)&#13;
RTFSélection(TxtChampRTF,rtfItalique,Faux,Ent_PosEntete,Ent_LongueurEntete)&#13;
RTFSélection(TxtChampRTF,rtfTaillePolice,10,Ent_PosEntete,Ent_LongueurEntete)&#13;
RTFSélection(TxtChampRTF,rtfNomPolice,"Arial",Ent_PosEntete,Ent_LongueurEntete)&#13;
RTFSélection(TxtChampRTF,rtfCouleur,Noir,Ent_PosEntete,Ent_LongueurEntete)&#13;
[/code]&#13;
&#13;
Code Formatage Valeurs&#13;
[code:wl]&#13;
PROCÉDURE ProcL_FormateValeur(LOCAL Ent_PosValeur est un entier,LOCAL Ent_LongueurValeur est un entier)&#13;
//** On formate les Valeurs **&#13;
RTFSélection(TxtChampRTF,rtfGras,Vrai,Ent_PosValeur,Ent_LongueurValeur)&#13;
RTFSélection(TxtChampRTF,rtfSouligné,Faux,Ent_PosValeur,Ent_LongueurValeur)&#13;
RTFSélection(TxtChampRTF,rtfItalique,Vrai,Ent_PosValeur,Ent_LongueurValeur)&#13;
RTFSélection(TxtChampRTF,rtfTaillePolice,9,Ent_PosValeur,Ent_LongueurValeur)&#13;
RTFSélection(TxtChampRTF,rtfNomPolice,"Arial",Ent_PosValeur,Ent_LongueurValeur)&#13;
RTFSélection(TxtChampRTF,rtfCouleur,BleuClair,Ent_PosValeur,Ent_LongueurValeur)&#13;
[/code]&#13;
&#13;
--&#13;
Aurélien MACHABERT&#13;
Développeur Chez GAUTHIER Menuiserie</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/231512-bug-rtf/read.awp</link><title>Bug RTF</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster><item><author>aurelien.machabert</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/231512-bug-rtf-231522/read.awp</comments><pubDate>12 Jul 2019 11:48:26 Z</pubDate><description>Bonjour Christophe,&#13;
&#13;
Tout d'abord merci beaucoup pour ta réponse qui m'a été énormément utile.&#13;
&#13;
je viens de faire mon test e…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/231512-bug-rtf-231522/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/231512-bug-rtf-231522/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/231512-bug-rtf/read.awp">Bug RTF</source><title>Re: Bug RTF</title></item><item><author>DELFI INFO-Chris</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/231512-bug-rtf-231518/read.awp</comments><pubDate>12 Jul 2019 09:58:10 Z</pubDate><description>bonjour Aurélien,&#13;
&#13;
Perso, pour ce genre de mise en forme, je me créé un champ libelle RTF invisible , préformaté pour un 'enre…</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/231512-bug-rtf-231518/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/231512-bug-rtf-231518/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/231512-bug-rtf/read.awp">Bug RTF</source><title>Re: Bug RTF</title></item></channel></rss>
