PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → champ traitement texte
champ traitement texte
Iniciado por f.dupuy, 08,feb. 2019 11:33 - 4 respuestas
Publicado el 08,febrero 2019 - 11:33
Bonjour à tous,

Sous WD24, j'utilise une champs traitement de texte.

Je créé un nouveau document WORD à partir d'un modèle, j atteint un signet et j'y insère un tableau.

Tout fonctionne bien.

Il me reste de la mise en forme à faire et je ne m'en sors pas...
Je souhaite "juste" aligner le contenu des cellules de mon tableau à droite ou à gauche.

Pouvez-vous m'aider ?

Voila ce que je fais.

...
// Insertion du tableau dans le document en mémoire ...
DocInsèreTableau(TraitementDeTexte1, nPositionInsertion, TableOccurrence(cTable, toColonne), cTable..Occurrence + 2)

POUR TOUT para DE doc..Paragraphe
SI para..Tableau <> Null ALORS

// Pour toutes les colonnes du champ table ...

POUR nColonne = 1 _À_ TableOccurrence(cTable, toColonne)

// Première ligne du tableau contient le titre des colonnes
pCol <- TableEnumèreColonne(cTable, nColonne)
para..Tableau..Cellules[1, nColonne]..Contenu.MiseEnForme.PoliceGras = Vrai
para..Tableau..Cellules[1, nColonne]..Contenu..Texte = pCol..Libellé

// Remplissage de toutes les lignes de cette colonne
POUR nLigne = 1 _À_ cTable..Occurrence

SI nColonne = 4 ALORS
para..Tableau..Cellules[nLigne+1, nColonne]..Contenu..Texte = NumériqueVersChaîne(pCol[nLigne], ",2fS") +" €"
SINON
para..Tableau..Cellules[nLigne+1, nColonne]..Contenu..Texte = pCol[nLigne]
FIN

FIN


FIN

// para..MiseEnPage..Alignement =chCentre
para..Tableau..Cellules[cTable..Occurrence + 2,TableOccurrence(cTable, toColonne)-1].Contenu.MiseEnForme.PoliceGras = Vrai
para..Tableau..Cellules[cTable..Occurrence + 2,TableOccurrence(cTable, toColonne)-1 ]..Contenu..Texte =TOTTXT


para..Tableau..Cellules[cTable..Occurrence + 2,TableOccurrence(cTable, toColonne) ].Contenu.MiseEnForme.PoliceGras = Vrai
para..Tableau..Cellules[cTable..Occurrence + 2,TableOccurrence(cTable, toColonne) ]..Contenu..Texte= NumériqueVersChaîne(tot, ",2fS") +" €"

SORTIR

FIN




FIN
Miembro registrado
27 mensajes
Publicado el 29,julio 2019 - 12:04
Bonjour
Vous pourrez m'aider en affichant le début de votre code SVP. Chez moi, j'ai un problème, peut-être à l'endroit où j'insère, voici unepartie de mon code:
DocOuvre(FEN_Génération_contrats_GFI.TT_ContratGFI,nomfic24)

gDoc1<-FEN_Génération_contrats_GFI.TT_ContratGFI
// Recherche de la position du signet


nPositionInsertion est un entier

monfragment est un docFragment(TT_ContratGFI,nPositionInsertion,0)
para est un docParagraphe
pTableau est un docTableau

nPositionInsertion=gDoc1..Signet["listeet"]..PositionDébut

DocInsèreTableau(TT_ContratGFI,nPositionInsertion,5,1)

para <-monfragment.Elément[1]..Paragraphe
SI para..Tableau=Null ALORS
Info("ce n'est pas un tableau")
RETOUR
FIN

Il insère bien un tableau à l'endroit voulu et Il me dit "ce n'est pas un tableau".

Si quelqu'un a une solution à me proposer, qu'il en soit remercié d'avance.
Mensaje modificado, 29,julio 2019 - 12:05
Miembro registrado
70 mensajes
Publicado el 02,agosto 2019 - 15:09
Bonjour,

J'ai eu le même problème que vous.

Il m'a fallut récupérer non pas le Paragraphe[1] mais le 2 pour que cela fonctionne.

MonFragment.InsèreTableau(3, 5)

soit MonParagraphe<- MonFragment.Paragraphe[2]
SI MonParagraphe.Tableau = Null ALORS
RENVOYER Vrai
FIN

En revanche, j'ai un soucis, c'est qu'à chaque fois que j'écris quelque chose dans une cellule, il réduit celui-ci en mémoire (il supprime une entrée dans Paragraphe) si bien qu'à un moment bug car j'essai d'accéder à une cellule inexistante (en mémoire car visuellement j'ai bien tout mon tableau)
MonParagraphe..Tableau..Cellules[1, 2]..Contenu..Texte = "Débit"
Miembro registrado
2 mensajes
Publicado el 02,agosto 2019 - 22:44
Je vous remercie, je vais faire des tests pour voir.
Miembro registrado
2 mensajes
Publicado el 05,agosto 2019 - 22:54
Bonjour,
En utilisant votre solution, cela a marché. J'ai pu inséré mon tableau et y ajouter des données issues d'une requête
Dans un premier temps, j'ai eu des problèmes en parcourant la table qui les contenait avec tantque mais dès que j"ai utilisé pour toute ligne de...ça a marché. Merci pour le coup de main.
NB :En regardant la position du tableau par rapport au tableau, j'ai vu qu'il y avait un saut de ligne après le signet, donc en supprimant la ligne, on devrrait piuvoir revenir au paragraphe 1.
Encore merci et à bientôt.