DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Champs : Types disponibles / Champ Table / Table sur variable
  • Présentation
  • Fonctionnement, programmation et synchronisation d'un champ Table sur variable
  • Ajout d'un élément
  • Modification d'un élément
  • Suppression d'un élément
  • Manipulation d'un champ Table sur variable dans un code WLangage : valeur mémorisée
  • Changer par programmation la variable de base d'un champ Table sur variable
  • Limitation
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
Présentation
Un champ Table sur variable est un champ Table dont les colonnes sont reliées aux éléments d'une variable de type Tableau, aux membres d'une classe ou aux éléments d'une variable de type avancé (variable de type xlsDocument par exemple).
Chaque colonne du champ Table peut être par exemple :
  • Liée à un membre d'une instance de classe,
  • Liée à un élément d'un tableau, ...
  • Calculée : Si la colonne n'est pas reliée à une variable, c'est une colonne calculée. Pour les colonnes calculées, le contenu de la colonne est re-calculé à chaque affichage de ligne, il n'est pas mémorisé.
Un champ Table sur variable permet de :
  • Visualiser le contenu d'une variable de type tableau, d'une classe ou d'une variable de type avancé.
  • Manipuler une ligne de la table (ajout, suppression, modification, ...).
Attention : la synchronisation entre le champ Table et sa source n'est pas automatique. Selon l'action effectuée, il est nécessaire de reporter l'action sur le champ Table ou sur la source.
Fonctionnement, programmation et synchronisation d'un champ Table sur variable

Ajout d'un élément

  • Cas 1. Ajout d'un élément dans la source du champ Table
    Pour reporter sur le champ Table un ajout effectué dans la source du champ Table, il est nécessaire d'utiliser la fonction TableAffiche avec la constante taInit. La sélection et le tri réalisés par l'utilisateur sont perdus.
  • Cas 2. Ajout d'un élément dans le champ Table (Saisie en cascade)
    Pour gérer la saisie en cascade, les ajouts doivent être réalisés par programmation dans la source.
    Il est conseillé de :
    • Faire les ajouts au fur et à mesure dans le code de sortie de ligne.
    • Utiliser la fonction TableAffiche (avec la constante taInit) pour mettre à jour les "liaisons" entre les lignes du champ Table et les éléments de la source.

Modification d'un élément

  • Cas 1. Modification dans la source du champ Table
    Pour reporter sur le champ Table les modifications effectuées sur la source du champ Table, il est nécessaire d'utiliser la fonction TableAffiche.
  • Cas 2. Modification effectuée dans le champ Table
    Si les modifications sont effectuées directement dans le champ Table, le report des modifications est réalisé automatiquement.
    Si les modifications sont réalisées par programmation dans le champ Table (via les fonctions du WLangage par exemple), il est nécessaire d'utiliser la fonction TableEnregistre pour valider les modifications. Le report des modifications est alors réalisé automatiquement.
    Attention : Selon les opérations réalisées précédemment, il est possible que le report soit effectué au mauvais endroit si la source et le champ Table ne sont pas en phase : il est nécessaire de maintenir la synchronisation en permanence.

Suppression d'un élément

  • Cas 1. Suppression d'un élément à partir de son indice dans la source du champ Table
    Il faut supprimer manuellement l'élément dans le champ Table et dans la source.
    La fonction TableCherche permet de retrouver la ligne du champ Table correspondant à l'élément (il est nécessaire que la valeur mémorisée du champ Table corresponde à l'élément de la source).
    Limitation : Pour les sources de type simple (tableau d'entiers par exemple), il est nécessaire d'utiliser la fonction TableAffiche avec la constante taInit pour mettre à jour les "liaisons" entre les lignes du champ Table et les éléments de la source. La sélection et le tri réalisés par l'utilisateur sont donc perdus.
  • Cas 2. Suppression d'un élément à partir de son indice dans le champ Table
    Il faut supprimer manuellement l'élément dans le champ Table et dans la source.
    La fonction TableCherche permet de retrouver l'indice dans la source correspondant à l'élément supprimé dans le champ Table.
    Limitation : Pour les sources de type simple (tableau d'entiers par exemple), il est nécessaire d'utiliser la fonction TableAffiche avec la constante taInit pour mettre à jour les "liaisons" entre les lignes du champ Table et les éléments de la source. La sélection et le tri réalisé par l'utilisateur sont donc perdus.
Manipulation d'un champ Table sur variable dans un code WLangage : valeur mémorisée
Lors de la manipulation d'un champ Table sur variable par programmation :
  • l'utilisation de <Champ Table> dans le code renvoie le contenu de la rubrique mémorisée.
  • l'utilisation de <Champ Table> dans une boucle de type POUR TOUTE LIGNE renvoie le contenu de la rubrique mémorisée.
  • l'utilisation de <Champ Table> [n] dans le code renvoie le contenu de la rubrique mémorisée.
Changer par programmation la variable de base d'un champ Table sur variable
Pour changer par programmation la variable de base d'un champ Table sur variable :
  1. Dans la fenêtre de description du champ Table, le type de remplissage du champ Table doit être "par variable" (onglet "Contenu").
  2. Par programmation, définissez la valeur des propriétés suivantes pour le champ Table :
    • FichierParcouru : cette propriété permet de définir le nom de la source de données de remplissage. Ici, cette propriété correspond à un nom de tableau de structures ou à un nom de tableau de classes.
    • RubriqueMémorisée : cette propriété correspond à la valeur retournée en mémoire par le champ Table, lors de la sélection d'une ligne.
  3. Pour chaque colonne du champ Table, utilisez la propriété LiaisonFichier pour définir le nom du membre de la variable tableau qui alimentera la colonne du champ Table.
  4. Affichez les données dans le champ Table grâce à la fonction TableAffiche.
Exemple de code :
// Déclaration du tableau
STContact est une Structure
sNom est une chaîne
sPrénom est une chaîne
sEmail est une chaîne
FIN
 
t_Contact est un tableau de STContact
 
 
// Affectation des propriétés de la table
TABLE_CONTACT.FichierParcouru = ":t_Contact"
TABLE_CONTACT.RubriqueMémorisée = ":t_Contact.sNom"
 
// Affectation des propriétés des colonnes de la table
TABLE_CONTACT.COL_NOM.LiaisonFichier = ":t_Contact.sNom"
TABLE_CONTACT.COL_PRENOM.LiaisonFichier = ":t_Contact.sPrénom"
TABLE_CONTACT.COL_EMAIL.LiaisonFichier = ":t_Contact.sEmail"
 
TableAffiche(TABLE_CONTACT)
Limitation
Les champs Table basés sur un tableau de types simples (entiers, chaînes de caractères, …) sont disponibles uniquement en affichage.
Version minimum requise
  • Version 14
Documentation également disponible pour…
Commentaires
Table sur Source : pas sur des tableaux avec WebDev
La possibilité de lier une table avec un tableau ne fonctionne pas sur Webdev : il faut utiliser un Objet
CV
11 oct. 2016

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale