|
| Iniciado por aurelien.machabert, 11,jul. 2019 16:34 - 2 respuestas |
| |
| | | |
|
| |
Miembro registrado 65 mensajes |
|
| Publicado el 11,julio 2019 - 16:34 |
Bonjour, j’essaie de mettre en place une liste de produits dans un champs RTF en formatant celle-ci
Or après plusieurs heures de recherche avec toutes les fonctions RTF connues, je n'arrive à ce que je veux :
Voici le résultat que j'aimerais avoir en pièce jointe : https://drive.google.com/open…
Pour le code : * 1 Code Principal déclenché d'un bouton * 1 Fonction pour le formatage des Entêtes * 1 Fonction pour le Formatage des Valeurs
Code Bouton
St_UnAccessoire est un Gp_TypS_LigneCmdeAccessoiresPose Tab_MesAccessoires est un tableau de Gp_TypS_LigneCmdeAccessoiresPose Ch_MaListe est une chaîne = RC Ch_TypePolice est une chaîne i est un entier j est un entier Ch_ChaineRecap est une chaîne = "" Ch_LigneAccessoire est une chaîne Ent_PositionValeur est un entier Ent_LongueurValeur est une entier Ch_ValeurTexteEnCours est une chaîne Ch_ValeurEntete_Ref est une chaîne = "Réf : " Ch_ValeurEntete_Libelle est une chaîne = "Libellé : " Ch_ValeurEntete_Qte est une chaîne = " Qté : " Ch_ValeurEntete_Condit est une chaîne = "Condit : " Ch_ValeurEntete_Longueur est une chaîne = "Lg : "
POUR j = 1 À 5 PAS 1 St_UnAccessoire.MemStr_Ch_RefAcc = "REF " + j St_UnAccessoire.MemStr_Ch_LibelleAcc = "ARTICLE " + j St_UnAccessoire.MemStr_Num_QteAcc = j SELON EstPair(j) CAS Vrai : St_UnAccessoire.MemStr_Ch_Conditionnement = "U" St_UnAccessoire.MemStr_Ent_LongueurAcc = 0 CAS Faux : St_UnAccessoire.MemStr_Ch_Conditionnement = "ML" St_UnAccessoire.MemStr_Ent_LongueurAcc = j * 1000 FIN TableauAjoute(Tab_MesAccessoires,St_UnAccessoire) FIN
POUR TOUT St_UnAccessoire de Tab_MesAccessoires Ch_ValeurTexteEnCours = Ch_ValeurEntete_Ref RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Ch_RefAcc RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) Ch_ValeurTexteEnCours = Ch_ValeurEntete_Libelle RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Ch_LibelleAcc RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) Ch_ValeurTexteEnCours = Ch_ValeurEntete_Qte RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Num_QteAcc RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) Ch_ValeurTexteEnCours = Ch_ValeurEntete_Condit RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Ch_Conditionnement RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) Ch_ValeurTexteEnCours = Ch_ValeurEntete_Longueur RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateEntete(Ent_PositionValeur,Ent_LongueurValeur) Ch_ValeurTexteEnCours = St_UnAccessoire.MemStr_Ent_LongueurAcc RTFAjoute(TxtChampRTF,Ch_ValeurTexteEnCours + TAB + TAB) Ent_LongueurValeur = Taille(TxtChampRTF) Ent_PositionValeur = RTFRecherche(TxtChampRTF,Ch_ValeurTexteEnCours) Ent_LongueurValeur = Taille(Ch_ValeurTexteEnCours) ProcL_FormateValeur(Ent_PositionValeur,Ent_LongueurValeur) RTFAjoute(TxtChampRTF,RC) FIN
Code Formatage Entete
Procedure ProcL_FormateEntete(LOCAL Ent_PosEntete est un entier,LOCAL Ent_LongueurEntete est un entier)
RTFSelection(TxtChampRTF,rtfGras,Vrai,Ent_PosEntete,Ent_LongueurEntete) RTFSelection(TxtChampRTF,rtfSouligné,Vrai,Ent_PosEntete,Ent_LongueurEntete) RTFSelection(TxtChampRTF,rtfItalique,Faux,Ent_PosEntete,Ent_LongueurEntete) RTFSelection(TxtChampRTF,rtfTaillePolice,10,Ent_PosEntete,Ent_LongueurEntete) RTFSelection(TxtChampRTF,rtfNomPolice,"Arial",Ent_PosEntete,Ent_LongueurEntete) RTFSelection(TxtChampRTF,rtfCouleur,Noir,Ent_PosEntete,Ent_LongueurEntete)
Code Formatage Valeurs
Procedure ProcL_FormateValeur(LOCAL Ent_PosValeur est un entier,LOCAL Ent_LongueurValeur est un entier)
RTFSelection(TxtChampRTF,rtfGras,Vrai,Ent_PosValeur,Ent_LongueurValeur) RTFSelection(TxtChampRTF,rtfSouligné,Faux,Ent_PosValeur,Ent_LongueurValeur) RTFSelection(TxtChampRTF,rtfItalique,Vrai,Ent_PosValeur,Ent_LongueurValeur) RTFSelection(TxtChampRTF,rtfTaillePolice,9,Ent_PosValeur,Ent_LongueurValeur) RTFSelection(TxtChampRTF,rtfNomPolice,"Arial",Ent_PosValeur,Ent_LongueurValeur) RTFSelection(TxtChampRTF,rtfCouleur,BleuClair,Ent_PosValeur,Ent_LongueurValeur)
-- Aurélien MACHABERT Développeur Chez GAUTHIER Menuiserie |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 953 mensajes |
|
| Publicado el 12,julio 2019 - 09:58 |
bonjour Aurélien,
Perso, pour ce genre de mise en forme, je me créé un champ libelle RTF invisible , préformaté pour un 'enregistrement'. Ensuite, avec un simple RTFAjoute() et un Remplace() çà donne un résultat plutôt fiable.

exemple de code :
_ref,_libelle,_condi,_qte,_longueur,_lib_longueur sont des chaînes _avec_longueur est un booléen=Vrai InitHasard()
POUR _i=1 _À_ 10 _ref=DonneGUID(guidBrut) _libelle=DonneGUID(guidBrut) _qte=NumériqueVersChaîne(Hasard()) _condi="U" SI _avec_longueur ALORS _longueur=NumériqueVersChaîne(Hasard()) _lib_longueur="Lg :" SINON _longueur="" _lib_longueur="" FIN PROCEDURE INTERNE proc_int_formate_value(vp_ref,vp_lib,vp_condi,vp_qte,vp_lib_long,vp_long) RENVOYER Remplace(Remplace(Remplace(Remplace(Remplace(Remplace(lib_modele_rtf,... "%%REF%%",vp_ref),... "%%LIBELLE%%",vp_lib),... "%%CONDI%%",vp_condi),... "%%QTE%%",vp_qte),... "%%LG%%",vp_lib_long),... "%%VALLG%%",vp_long) FIN RTFAjoute(lib_result_rtf,proc_int_formate_value(_ref,_libelle,_condi,_qte,_lib_longueur,_longueur)) _avec_longueur=PAS _avec_longueur FIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 65 mensajes |
| | |
|
| | | | |
| | |
|