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 par programmation
  • Présentation
  • Initialisation d'un champ Table par programmation
  • Ajout de lignes dans un champ Table par programmation
  • Gestion des colonnes calculées
  • Modification d'une ligne ou d'une colonne
  • Forcer la saisie
  • Ajout ou suppression d'une colonne
  • Opérations sur les lignes et les cellules
  • Suppression d'une ligne
  • Récupération d'une ligne ou d'une cellule
  • Valeur d'une cellule de la ligne en cours
  • Valeur d'une cellule pour une ligne spécifique
  • Contenu de la ligne en cours
  • Contenu d'une ligne spécifique
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
Voici les principaux points de la manipulation en WLangage des champs Table remplis par programmation.
Le WLangage met à votre disposition de nombreuses fonctions permettant de gérer par programmation ce type de champ. N'hésitez pas à consulter la documentation de ces fonctions.
Pour plus de détails, consultez Fonctions de gestion des champs Table.
Initialisation d'un champ Table par programmation
La création d'une ligne d'un champ Table n'est pas automatique. Elle doit être demandée explicitement par un appel aux fonctions :
Remarque : si l'option "Saisie en cascade (Ajout)" n'est pas sélectionnée :
  • A sa création, un champ Table ne comporte aucune ligne :
    TABLE_MaTable.Occurrence = 0.
    Dans ce cas, aucune saisie n'est possible et la propriété Vide est à Vrai.
  • Pour insérer automatiquement une ligne si le champ Table est vide, il faut utiliser les lignes de code suivantes dans l'événement "Initialisation" du champ Table :
    SI TABLE_MaTable.Vide = Vrai ALORS TABLE_MaTable.Ajoute()
Ajout de lignes dans un champ Table par programmation
L'ajout de lignes dans un champ Table par programmation est réalisé :
WINDEVJava Si une nouvelle ligne a été ajoutée dans le champ Table avec <Table>.Ajoute, <Table>.Insère, <Table>.AjouteLigne ou <Table>.InsèreLigne, la propriété Nouveau est à Vrai (sinon elle est à Faux).
Gestion des colonnes calculées
La formule de calcul d'une colonne calculée doit être décrite dans l'événement "Affichage d'une ligne" du champ Table. Par exemple :
// COL_PHT : colonne calculée
// COL_PUHT et COL_QTE : colonnes remplies par programmation
COL_PHT = COL_PUHT * COL_QTE
Modification d'une ligne ou d'une colonne
Le contenu des lignes et des colonnes d'un champ Table peut être modifié :
  • par l'utilisateur, en saisissant directement dans les colonnes. Les modifications sont mémorisées automatiquement dans le champ Table, sans programmation complémentaire. La propriété Modifié est à Vrai.
  • par programmation :
    • avec la fonction <Table>.Modifie pour modifier le contenu de la ligne en cours ou d'une ligne donnée.
      Par exemple :
      TABLE_CLIENT.Modifie("PY" + TAB + "Jean" + TAB + "Nîmes")

      Remarque : il est également possible d'utiliser directement le nom du champ Table :
      // Modifier la ligne en cours
      TABLE_CLIENT = "DURAND" + TAB +"Sophie" + TAB + "Nîmes"
      // Modifier la ligne 3
      TABLE_JOUR.Modifie("Mercredi" + TAB + "Vaqué", 3)
    • directement en donnant le nom de la colonne (comme pour un champ de saisie) pour modifier le contenu de la colonne. Pour modifier une colonne d'une ligne précise, il faut indiquer le numéro de la ligne (indice).
      Par exemple :
      COL_NOM[Indice] = SAI_NomClient

      Pour modifier une colonne de la ligne en cours, il n'est pas nécessaire de préciser l'indice. Par exemple :
      COL_NOM = SAI_NomClient

      La propriété Modifié est à Faux (elle n'est mise à Vrai que par une saisie dans le champ Table).
WINDEVWindowsJavaCode Utilisateur (MCU)

Forcer la saisie

La fonction DonneFocusEtRetourUtilisateur peut être utilisée pour se replacer en saisie sur une colonne de la ligne en cours.
Par exemple :
// Traitement d'entrée colonne COL_QTE
// COL_QTE ne peut pas être saisi,
// si COL_PRODUIT n'est pas saisi
SI SansEspace(COL_PRODUIT) = "" ALORS
Erreur("La colonne Produit doit être saisie en premier")
DonneFocusEtRetourUtilisateur(COL_PRODUIT)
FIN
WINDEVWindowsJavaCode Utilisateur (MCU)

Ajout ou suppression d'une colonne

Il est possible de :
  • Ajouter une colonne dans un champ Table par programmation grâce à la fonction ChampClone.
  • Supprimer une colonne dans un champ Table par programmation grâce à la fonction ChampSupprime.
Opérations sur les lignes et les cellules

Suppression d'une ligne

La suppression d'une ligne doit être demandée explicitement à l'aide de la fonction <Table>.Supprime. La syntaxe utilisée est :
<Champ Table>.Supprime([<Indice>])
Si l'indice est précisé, la fonction <Table>.Supprime supprime la ligne correspondant à l'indice. Sinon, elle supprime la ligne en cours. Par exemple :
TABLE_CLIENT.Supprime()
La sélection d'une ligne s'effectue avec la fonction <Table>.SelectPlus.
La syntaxe utilisée est :
<Champ Table>.SelectPlus([<Indice>])

Récupération d'une ligne ou d'une cellule

Le contenu d'un champ Table rempli par programmation peut être récupéré :
  • soit la ligne entière.
  • soit cellule par cellule.

Valeur d'une cellule de la ligne en cours

Pour récupérer la valeur d'une colonne (ou cellule) de la ligne en cours, la syntaxe est la même que pour un champ de saisie simple.
<Valeur> = <Nom Colonne>
Exemple :
// COL_QTE est une colonne du champ Table
SI COL_QTE < 10 ALORS
Info("Qté insuffisante")
FIN

Valeur d'une cellule pour une ligne spécifique

Pour récupérer la valeur d'une colonne qui n'est pas sur la ligne en cours, il faut passer l'indice de la ligne.
<Valeur> = <Nom Colonne>[<Indice>]
Par exemple :
// Totaliser le Prix PHT pour toutes les lignes de commande
PrixTotal = 0
POUR Indice = 1 _À_ TABLE_COMMANDE.Occurrence
PrixTotal = PrixTotal + COL_PHT[Indice]
FIN

Contenu de la ligne en cours

Pour récupérer le contenu de la ligne en cours, la syntaxe est la suivante :
<Valeur> = <Champ Table>

Contenu d'une ligne spécifique

Pour récupérer le contenu de la ligne d'indice <Indice>, la syntaxe est la suivante :
<Valeur> = <Champ Table>[<Indice>]

Remarque : L'indice de la ligne en cours peut être connu par la fonction <Table>.Select.
Par exemple :
// Récupérer la ligne 10 dans le champ Table TABLE_CLIENT
LigneEnCours = TABLE_CLIENT[10]

// Nom du client sélectionné
NomClient = COL_NOM[TABLE_CLIENT.Select()]

// Récupérer la ligne en cours dans le champ Table TABLE_CLIENT
LigneEnCours = TABLE_CLIENT
Version minimum requise
  • Version 23
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

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