PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • Initialisation d'un champ Table mémoire
  • Ajout de lignes dans un champ Table mémoire
  • 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
  • Sélectionner la 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/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Présentation
Voici les principaux points de la programmation des champs Table mémoire.
Le WLangage met à votre disposition de nombreuses fonctions permettant de gérer par programmation ce type de champ. N'hésitez pas à consultez la documentation de ces fonctions.
Pour plus de détails, consultez Fonctions de gestion des champs Table.
Versions 20 et supérieures
Android Le champ Table est désormais disponible pour les applications Android.
iPhone/iPad Le champ Table est désormais disponible pour les applications iPhone/iPad.
Nouveauté 20
Android Le champ Table est désormais disponible pour les applications Android.
iPhone/iPad Le champ Table est désormais disponible pour les applications iPhone/iPad.
Android Le champ Table est désormais disponible pour les applications Android.
iPhone/iPad Le champ Table est désormais disponible pour les applications iPhone/iPad.
Initialisation d'un champ Table mémoire
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 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 le traitement d'initialisation du champ Table :
    SI TABLE_MaTable..Vide = Vrai ALORS TableAjoute(TABLE_MaTable)
Ajout de lignes dans un champ Table mémoire
L'ajout de lignes dans un champ Table mémoire est réalisé :
WINDEVWEBDEV - Code ServeurWindows MobileJavaPHP Si une nouvelle ligne a été ajoutée dans le champ Table avec TableAjoute, TableInsère, TableAjouteLigne ou TableInsè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 le traitement "Affichage d'une ligne de table". Par exemple :
// COL_PHT : colonne calculée
// COL_PUHT et COL_QTE : colonnes liées à des zones mémoire
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 TableModifie pour modifier le contenu de la ligne en cours ou d'une ligne donnée.
      Par exemple :
      TableModifie(TABLE_CLIENT, "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
      TableModifie(TABLE_JOUR, "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).
WINDEVWindowsWindows MobileJavaCode Utilisateur (MCU)

Forcer la saisie

La fonction RepriseSaisie 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")
        RepriseSaisie(COL_PRODUIT)
FIN
WINDEVWEBDEV - Code ServeurWindowsWindows MobileJavaCode Utilisateur (MCU)

Ajout ou suppression d'une colonne

Il est possible de :
  • Ajouter une colonne dans un champ Table mémoire grâce à la fonction ChampClone.
  • Supprimer une colonne dans un champ Table mémoire 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 TableSupprime. La syntaxe utilisée est :
TableSupprime(<Nom du champ Table>[, <Indice>])
Si l'indice est précisé, la fonction TableSupprime supprime la ligne correspondant à l'indice. Sinon, elle supprime la ligne en cours. Par exemple :
TableSupprime(TABLE_CLIENT)
La suppression d'une ligne du champ Table supprime toutes les valeurs des colonnes pour cette ligne.

Sélectionner la ligne

La sélection d'une ligne s'effectue avec la fonction TableSelectPlus.
La syntaxe utilisée est :
TableSelectPlus(<Nom du champ Table>[, <Indice>])

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

Le contenu d'une table mémoire 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 _A_ 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> = <NomTable>

Contenu d'une ligne spécifique

Pour récupérer le contenu de la ligne d'indice <Indice>, la syntaxe est la suivante :
<Valeur> = <Nom_Table>[<Indice>]
Remarque : L'indice de la ligne en cours peut être connu par la fonction TableSelect. 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[TableSelect(TABLE_CLIENT)]

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