PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Champ Traitement Texte avec 2 tableaux
Champ Traitement Texte avec 2 tableaux
Débuté par Stéphane D., 24 mai 2020 20:07 - 7 réponses
Membre enregistré
161 messages
Popularité : -1 (1 vote)
Posté le 24 mai 2020 - 20:07
Bonjour à tous,

Je veux insérer deux tableaux dans mon champs traitement de texte.
Lorsque je le rempli avec 1 tableau cela fonctionne très bien, mais lorsque je veux en mettre un deuxième cela ne fonctionne pas.
Je vous ai préparé un mini projet en Windev 25 avec le document Word et ses signets.
Vous pouvez le récupérer à cette adresse :
http://global-dev.fr/MINIProjet/Projet_Insert_Tableaux_Word.zip

Sinon voici le code :
TableAjouteLigne(TAB01,"1","2","3","4")
TableAjouteLigne(TAB01,"5","6","7","8")

TableAjouteLigne(TAB02,"A","B","C","D")
TableAjouteLigne(TAB02,"E","F","G","H")

DocOuvre(TraitementDeTexte,fRepEnCours()+"\Modele_Test.docx")

doc est un Document <- TraitementDeTexte..Valeur

cTableRisque est un Champ <- TAB01
pColRisque est un Champ

DocInsèreTableau(TraitementDeTexte, doc..Signet["SIG_Tab_01"]..PositionFin, 4, cTableRisque..Occurrence + 1)

POUR TOUT para de doc..Paragraphe

SI para..Tableau <> Null ALORS
para..Tableau..Colonnes[1]..LargeurMillimètres = "15"
para..Tableau..Colonnes[2]..LargeurMillimètres = "25"
para..Tableau..Colonnes[3]..LargeurMillimètres = "50"
para..Tableau..Colonnes[4]..LargeurMillimètres = "50"

// Pour toutes les colonnes du champ table ...
POUR nColonneRisque = 1 _À_ 4//TableOccurrence(cTable, toColonne)

// Première ligne du tableau contient le titre des colonnes
pColRisque <- TableEnumèreColonne(cTableRisque, nColonneRisque)
para..Tableau..Cellules[1, nColonneRisque]..Contenu..Texte = pColRisque..Libellé
para..Tableau..Cellules[1, nColonneRisque]..MiseEnPage..Alignement = chCentre
para..Tableau..Cellules[1, nColonneRisque]..MiseEnPage..CouleurFond = GrisClair


// Remplissage de toutes les lignes de cette colonne
POUR nLigne = 1 _À_ cTableRisque..Occurrence
//para..Tableau..Lignes[nLigne]..Hauteur = "5"
para..Tableau..Cellules[nLigne+1, nColonneRisque]..Contenu..Texte = pColRisque[nLigne]
para..Tableau..Cellules[nLigne+1, nColonneRisque]..MiseEnPage..Alignement = chCentre
FIN
FIN
SORTIR
FIN
FIN

cTableRisque2 est une Champ <- TAB02
pColRisque2 est un Champ

DocInsèreTableau(TraitementDeTexte, doc..Signet["SIG_Tab_02"]..PositionFin, 4, cTableRisque2..Occurrence + 1)

POUR TOUT para de doc..Paragraphe

SI para..Tableau <> Null ALORS
para..Tableau..Colonnes[1]..LargeurMillimètres = "15"
para..Tableau..Colonnes[2]..LargeurMillimètres = "25"
para..Tableau..Colonnes[3]..LargeurMillimètres = "50"
para..Tableau..Colonnes[4]..LargeurMillimètres = "50"


// Pour toutes les colonnes du champ table ...
POUR nColonneRisque = 1 _À_ 4//TableOccurrence(cTable, toColonne)

// Première ligne du tableau contient le titre des colonnes
pColRisque2 <- TableEnumèreColonne(cTableRisque2, nColonneRisque)
para..Tableau..Cellules[1, nColonneRisque]..Contenu..Texte = pColRisque2..Libellé
para..Tableau..Cellules[1, nColonneRisque]..MiseEnPage..Alignement = chCentre
para..Tableau..Cellules[1, nColonneRisque]..MiseEnPage..CouleurFond = GrisClair


// Remplissage de toutes les lignes de cette colonne
POUR nLigne = 1 _À_ 2//cTableRisque..Occurrence
//para..Tableau..Lignes[nLigne]..Hauteur = "5"
para..Tableau..Cellules[nLigne, nColonneRisque]..Contenu..Texte = pColRisque2[nLigne]
para..Tableau..Cellules[nLigne, nColonneRisque]..MiseEnPage..Alignement = chCentre
FIN
FIN
SORTIR
FIN
FIN

Merci d'avance pour votre aide.

--
Stéphane.
Membre enregistré
6 messages
Posté le 24 mai 2020 - 23:04
Bonsoir
Je ne vais pas etre d'une grande aide mais jai posté hier un dérivé du même problème.
J'écris très bien dans le premier tableau de mon document Wird mais narrive ququ'à ecrire dzns la première ligne du deuxième.
Je manipule 5 doctableau qui pointent tous bien sur chacun de mes 5 tablzaux word.Et bien qu' utilisant ces doctableau, l'écriture dans les cellules se passent mal. Jai envoyé une demande d'aide au support.

Espérons une piste ou une correction. Je vous tiendrai au courant.
Membre enregistré
161 messages
Popularité : -1 (1 vote)
Posté le 25 mai 2020 - 09:29
Merci Francis.

--
Stéphane.
Membre enregistré
161 messages
Popularité : -1 (1 vote)
Posté le 27 mai 2020 - 00:09
C'est bon, j'ai mis à jour mon mini projet qui fonctionne parfaitement (Disponible 1 mois).
@+++

--
Stéphane.
Membre enregistré
47 messages
Popularité : +1 (1 vote)
Posté le 02 octobre 2020 - 17:28
Bonjour Stéphane,

je découvre ton message très intéressant.
Je travaille sur une problématique similaire sur un seul tableau.
J'arrive à le remplir très bien, mais je trouve que c'est d'une LENTEUR EXTREME.
As-tu eu cette même lenteur ?

Merci de ta réponse éventuelle

Maxime

--
Maxime
Membre enregistré
161 messages
Popularité : -1 (1 vote)
Posté le 03 octobre 2020 - 20:22
Non je n'ai pas de lenteur, si tu as un mini projet, je peux y regarder.
Cordialement

--
Stéphane.
Posté le 07 octobre 2020 - 08:41
Salut Stéphane et merci pour ta réponse

j'ai résolu mon problème de lenteur.
J'ai remarqué que si tu travailles directement sur le champ TT de la fenêtre, l'insertion du tableau se fait "normalement" mais le remplissage de cette même tableau se fait avec une lenteur extrême (ce que moi j'ai remarqué mais j'ai peut-être loupé qq chose...)
J'ai donc repensé la chose en utilisant un champ TT intermédiaire dans lequel je remplis mon tableau. C'est hyper rapide dans ce cas là car il n'y a rien d'autre dans ce champ TT intermédiaire.
Ensuite je l'insère au bon endroit dans le champ TT du document. Cela se fait très bien et rapidement.
J'ai un facteur de vitesse de 1 à 15 ou 20 !!!

Je suis preneur sur tout ce qui peut améliorer ma connaissance sur le sujet
Bonne journée
Maxime
Membre enregistré
161 messages
Popularité : -1 (1 vote)
Posté le 08 octobre 2020 - 09:38
Et bien parfait....
Bon Dév.

--
Stéphane.