PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Répéter bloc dans un champ traitement de texte
Répéter bloc dans un champ traitement de texte
Iniciado por christian.dandoy, 21,feb. 2019 10:44 - No hay respuesta
Publicado el 21,febrero 2019 - 10:44
Bonjour,

J'ai un problème que je n'arrive pas à résoudre même après contact au STG.

J'ai un document docx que je charge dans un champ traitement de texte/variable document.

Ce document est composé de balises que je souhaite remplacer par des valeurs issues d'une requete.

ces balises sont dans le document ainsi:
  (texte en gras souligné)
  (texte en italique)


J'essaie en vain dans une boucle de pouvoir remplir ce texte pour obtenir le résultat suivant (en gardant le style défini dans le modèle de base qui contient ces balises)
Catégorie 1
Rubrique 1
Rubrique 2

Catégorie 2
Rubrique 1

Catégorie 3
Rubrique 1
Rubrique 2
Rubrique 3



Le problème c'est de faire un docInsère des fragments récupérés ne fonctionne pas. Les balises ne sont pas dupliquées.
Même si s'affecte mon fragment par Copie (<=) la copie modifie quand même l'original

doc est un Document
doc <- TT_SansNom1
//Déclaration des variables
tabPositionCategorie, tabPositionRubrique sont des tableaux de docFragments
nTailleFragmentCategorie est un entier
nTailleFragmentRubrique est un entier
nPositionInsertion est un entier

POUR nCat = 1 À 5
tabPositionCategorie=DocRecherche(doc,"<Categorie>")
SI tabPositionCategorie..Occurrence > 0 ALORS
nTailleFragmentCategorie = tabPositionCategorie[1]..PositionFin - tabPositionCategorie[1]..PositionDébut
dC est un docFragment(doc,tabPositionCategorie[1]..PositionDébut,nTailleFragmentCategorie)
dC.Texte = "Categorie " + nCat
nPositionInsertion = tabPositionCategorie[1]..PositionDébut
DocInsère(doc,nPositionInsertion,dC)
POUR nRub = 1 À 3
tabPositionRubrique=DocRecherche(doc,"<Rubrique>")

dRub est un docFragment(doc,tabPositionRubrique[1]..PositionDébut,nTailleFragmentRubrique)
dRub.Texte = "Rubrique " + nRub
nPositionInsertion = tabPositionRubrique[1]..PositionDébut
DocInsère(doc,nPositionInsertion,dRub)
FIN
FIN
FIN