ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Controls, pages and windows / Word Processing functions
  • Manipuler un tableau par programmation
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Insère un tableau dans un document de type Traitement de texte ou remplace le fragment spécifié par un nouveau tableau.
Exemple
// Insère un tableau à la position 1 de taille 3x3
DocInsèreTableau(TT_Tableau, 1, 3, 3)
// Insère un tableau à la position du curseur de taille 3 colonnes et 2 lignes
DocInsèreTableau(TT_Tableau, TT_Tableau.Curseur, 3, 2)
Syntaxe

Insérer un tableau dans un document de type Traitement de texte Masquer les détails

<Résultat> = DocInsèreTableau(<Document> , <Position> [, <Nombre de colonnes> [, <Nombre de lignes>]])
<Résultat> : Variable de type docFragment
Variable de type docFragment contenant le fragment inséré.
<Document> : Variable de type Document ou chaîne de caractères
Document à manipuler. Ce document correspond :
  • WINDEV au nom d'un champ Traitement de texte.
  • à une variable de type Document.
<Position> : Entier
Position à laquelle le tableau doit être inséré. Cette position est exprimée en nombre de caractères.
<Nombre de colonnes> : Entier optionnel
Nombre de colonnes du tableau. Par défaut, ce paramètre correspond à 1.
<Nombre de lignes> : Entier optionnel
Nombre de lignes du tableau. Par défaut, ce paramètre correspond à 1.

Remplacer le fragment existant par un nouveau tableau Masquer les détails

<Résultat> = DocInsèreTableau(<Fragment> [, <Nombre de colonnes> [, <Nombre de lignes>]])
<Résultat> : Variable de type docFragment
Variable de type docFragment contenant le fragment inséré.
<Fragment> : Variable de type docFragment
Nom de la variable de type docFragment correspondant au fragment à manipuler. Le contenu actuel du fragment sera remplacé par le tableau créé.
<Nombre de colonnes> : Entier optionnel
Nombre de colonnes du tableau. Par défaut, ce paramètre correspond à 1.
<Nombre de lignes> : Entier optionnel
Nombre de lignes du tableau. Par défaut, ce paramètre correspond à 1.
Remarques

Manipuler un tableau par programmation

Un tableau présent dans un document de type Traitement de texte peut être manipulé avec les fonctions de gestion des tableaux du WLangage.
Quelques exemples :
Exemple :
// Insère un tableau à la position 1 de taille 3x3
DocInsèreTableau(TT_ExempleTT, 1, 3, 3)
 
// Définition d'un fragment correspondant au tableau
f est un docFragment(TT_ExempleTT.Valeur, TT_ExempleTT.Curseur, 0)
 
soit para <- f.Paragraphe[1]
SI para.Tableau = Null ALORS
RETOUR
FIN
 
doc est un Document <- TT_ExempleTT.Valeur
 
// Ajoute une ligne au tableau
nIndice est un entier = Ajoute(para.Tableau.Lignes)
 
// Saisie dans la cellule 2,2
para.Tableau.Cellules[2,2].Contenu.Texte = "Je suis dans la cellule 2,2"
 
// Supprime la ligne 3
Supprime(para.Tableau.Lignes, 3)
 
// Supprime la colonne 3
Supprime(para.Tableau.Colonnes, 3)
 
// Supprime le tableau entier où se trouve le curseur
Supprime(doc.Paragraphe, para.IndiceParagraphe)
Exemple de création d'un tableau dans un document avec le contenu d'un champ Table :
// Une fenêtre contient un champ Table par programmation nommé TABLE_Démo
// et un champ Traitement de texte nommé TT_Démo
// Le code suivant ajoute un tableau dans le champ Traitement de texte avec :
// - en première ligne du tableau, le titre des colonnes du champ Table,
// - le contenu du champ Table dans les lignes suivantes du tableau.
 
MonDoc est un Document
cTable est un Champ <- TABLE_Démo
pCol est un Champ
 
FragmentDeb est un docFragment(MonDoc,1)
FragmentDeb.MiseEnForme.PoliceTaille = 24
FragmentDeb.MiseEnForme.CouleurTexte = RougeFoncé
FragmentDeb.Texte = "Tableau dans TTX avec " + cTable.Libellé + RC + RC
 
// Insertion du tableau dans le document en mémoire ...
DocInsèreTableau(MonDoc, 20, TableOccurrence(cTable, toColonne), cTable.Occurrence + 1)
 
POUR TOUT para DE MonDoc.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.Texte = pCol.Libellé
 
// Remplissage de toutes les lignes de cette colonne
POUR nLigne = 1 _À_ cTable.Occurrence
para.Tableau.Cellules[nLigne+1, nColonne].Contenu.Texte = pCol[nLigne]
FIN
FIN
SORTIR
FIN
FIN
 
// Document en mémoire affecté au champ Traitement de texte
TT_Démo = MonDoc
Composante : wd290mdl.dll
Minimum version required
  • Version 22
Comments
using the DocInsertTable
1) you must add at least 2 lines in the docinserttable

DOC is document <- edt_doc // edt_doc is the document control

// inserts a document at position w 2 lines.
Frag is docFragment = DocInsertTable(doc,position,1,2)

now we look at the fragment for the lines we just added.. the table will usually NOT be in the first paragraph of the fragment so you must loop till you find it.

for each pTable of Frag..Paragraph
if pTable = Null then continue
for each string aString,tndx of arrString separated by CR
indx = add(ptable..table..Rows)
ptable..table..cells[indx,1)..content..text = aString
END
//remove the top 2 blank lines
delete(ptable..table..Rows,1)
delete(ptable..table..Rows,1)
//once 1st line deleted line 2 becomes line 1 so you delete again

Andy <<Cowboy>>Stapleton
andy@wxperts.com



Howard Stapleton
19 Aug. 2019

Last update: 06/23/2022

Send a report | Local help