PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Champ Traitement de Texte / tableau en corps
Champ Traitement de Texte / tableau en corps
Iniciado por contact, 09,may. 2018 14:12 - 4 respuestas
Miembro registrado
2 mensajes
Publicado el 09,mayo 2018 - 14:12
Bonjour,

Je suis confronté à un manque d'inspiration concernant le champ "Traitement de Texte".
J'ai un document avec un tableau de 5 colonnes et de 3 lignes marqué par un signet.
Les colonnes sont de tailles variables, et certaines de ces colonnes sont fusionnées sur certaines lignes.

J'arrive à insérer des valeurs dedans. OK.

Par contre, j'aimerai que ce tableau se comporte un peu comme une zone "corps" et qu'il se réimprime autant de fois que j'ai d'itérations dans ma boucle.

J'ai tenté de copier cette zone, mais je n'arrive pas à la réinsérer à chaque nouvelle itération.

Comment insérer ce tableau en boucle ?

En vous remerciant pour vos solutions ou pistes.

Jeremy
Miembro registrado
2 mensajes
Publicado el 09,mayo 2018 - 14:42
Je complète, en gros je veux dupliquer cette zone tableau un peu stylée avant de la remplir avec les données, autant de fois que nécessaire.

J'ai tenté les fonctions DocInsère, DocAjoute, mais je ne peux pas insérer de fragment de type tableau.
Miembro registrado
4 mensajes
Publicado el 17,mayo 2018 - 17:17
Bonjour,
Une solution parmi d'autres... tu peux mettre des balises en début et Fin de Tableau (<TABLEAU> et </TABLEAU>) et faire un fragment entre ces balises que tu copies autant de fois que tu veux. A toi de gérer la position où tu veux le placer.

tabDebutTableau, tabFinTableau sont des tableaux de docFragments

tabDebutTableau=DocRecherche(TT,"<TABLEAU>")
tabFinTableau=DocRecherche(TT,"</TABLEAU>")
nLongueur est un entier
SI tabDebutTableau..Occurrence>=1 ET tabFinTableau..Occurrence>=1 ALORS
nLongueur=tabFinTableau[tabDebutTableau..Occurrence]..PositionFin - tabDebutTableau[tabDebutTableau..Occurrence]..PositionDébut
Tableau_a_copier est un docFragment(TT,tabDebutTableau[tabDebutTableau..Occurrence]..PositionDébut,nLongueur)
soit nPositionInsertion = tabFinTableau[tabDebutTableau..Occurrence]..PositionFin
DocInsère(TT,nPositionInsertion,Tableau_a_copier)
FIN

après tu n'oublie spas de virer tes balises
docremplace(TT,"<TABLEAU>","")
docremplace(TT,"<\TABLEAU>","")

J'espère avoir pu t'aider

Fabien
Publicado el 22,mayo 2018 - 15:06
Bonjour Fabien,

Merci infiniment pour ta réponse qui m'a permis d'avancer.
Ta solution fonctionne parfaitement :merci:

MERCI !

Jeremy
Miembro registrado
4 mensajes
Publicado el 16,febrero 2019 - 22:52
Bonjour Jeremy.

Je bosse sur une édition de factures et je galère un peu avec le tableau.
J'ai moi aussi un formatage avec fusion etc et je n'arrive pas à utiliser le code de Fabien.

Pourrais-tu m'aider sur le sujet stp ?

Merci par avance.
Sébastien.