PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Mise en forme tableau dans le champ traitement de texte
Mise en forme tableau dans le champ traitement de texte
Iniciado por Olivier, 13,sep. 2019 14:46 - 6 respuestas
Miembro registrado
198 mensajes
Publicado el 13,septiembre 2019 - 14:46
Bonjour,

J'ai une petite question sur le champ traitement de texte.
Je génère dynamiquement des tableaux dans le champ traitement de texte et je voudrais recopier la mise en forme d'une cellule du tableau sur une autre cellule.
J'ai une solution mais elle est assez laborieuse :

MonTableau..Cellules[nIndiceTableau,5].Contenu.MiseEnForme.PoliceGras = MonTableau..Cellules[1,5].Contenu.MiseEnForme.PoliceGras
MonTableau..Cellules[nIndiceTableau,5].Contenu.MiseEnForme.PoliceItalique = MonTableau..Cellules[1,5].Contenu.MiseEnForme.PoliceItalique
MonTableau..Cellules[nIndiceTableau,5].Contenu.MiseEnForme.PoliceSoulignée = MonTableau..Cellules[1,5].Contenu.MiseEnForme.PoliceSoulignée
MonTableau..Cellules[nIndiceTableau,5].Contenu.MiseEnForme.PoliceTaille = MonTableau..Cellules[1,5].Contenu.MiseEnForme.PoliceTaille

... à faire pour les couleurs de texte, la couleur de fond, etc... etc... etc... etc...


Existe-t-il une façon de recopier toutes les mises en forme en une fois, par exemple faire un :

MonTableau..Cellules[nIndiceTableau,5].Contenu.MiseEnForme = MonTableau..Cellules[1,5].Contenu.MiseEnForme


J'ai passé pas mal de temps dessus et je n'ai pas trouvé la solution.
Quelqu'un à déjà fait cela ?
Merciii !

Olivier

--
Miembro registrado
198 mensajes
Publicado el 01,octubre 2019 - 08:04
Une idée ? ;(

--
Miembro registrado
2.682 mensajes
Publicado el 01,octubre 2019 - 08:53
Bonjour,

Ne peux-tu pas utiliser la variable de type docMiseEnForme ?

--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
198 mensajes
Publicado el 02,octubre 2019 - 08:21
Bonjour Philippe et merci beaucoup pour ton message.

Je dois avouer que je ne sais pas utiliser docMiseEnForme, j'ai fait quelques essais sans succès et l'aide en ligne est un peu succincte, il manque quelques d'exemples concrets.

Ils disent :
ATTENTION : Ce type ne doit pas être utilisé directement. Il doit être utilisé uniquement via :
•le type docElémentFormule.
•le type docElémentTexte.

Je remplis mon tableau avec des :
MonTableau.Cellules[nIndiceTableau, 1]..Contenu..Texte = "toto"


Tu aurais un exemple avec docMiseEnForme ? dans le forum personne ne parle de docMiseEnForme }:(

Merci
Cordialement

Olivier

--
Miembro registrado
2.682 mensajes
Publicado el 02,octubre 2019 - 09:25
Bonjour,

Je n'ai jamais utilisé le traitement de texte de Windev. Encore trop d'imperfections à mon goût.

En regardant l'aide:
- docElement a la propriété cellule
- la cellule est de type docCellule
- le contenu de la cellule est de type docFragment
- la mise en forme de Contenu est de type docMiseEnforme

Donc tu dois pouvoir faire:

MaMiseEnForme est docMiseEnForme

MaMiseEnForme.PoliceGras = Vrai
MaMiseEnForme.PoliceItalique = Vrai
MaMiseEnForme.PoliceSoulignée = Vrai
MaMiseEnForme.PoliceTaille = 18

MonTableau..Cellules[nIndiceTableau,5].Contenu.MiseEnForme = MaMiseEnForme


--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
198 mensajes
Publicado el 02,octubre 2019 - 16:18
Bonjour Philippe...
Oui tu as bien raison, il y a encore quelques imperfections et des comportements bizarres des fois.

Je vais essayer çà...
Il me semble bien que j'avais déjà essayé de faire :

MonTableau..Cellules[nIndiceTableau,5].Contenu.MiseEnForme = MonTableau..Cellules[nIndiceTableau,1].Contenu.MiseEnForme


pour recopier la mise en forme et que cela n'avait pas marché. Mais je vais re-essayer.

Merci
Cordialement
Olivier

--
Mensaje modificado, 02,octubre 2019 - 16:19
Miembro registrado
2.682 mensajes
Publicado el 02,octubre 2019 - 17:04
Je pense qu'il faut que tu passes par une variable de type docMiseEnForme

--
Cordialement,

Philippe SAINT-BERTIN