PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

PV

  • Présentation
  • Comment créer une colonne de table de type Conteneur ?
  • Les différentes étapes
  • Champ principal d'une colonne Conteneur
  • Limitations
  • Utilisation d'une colonne de type Conteneur
  • Champ Table fichier ou champ Table sur variable
  • Champ Table par programmation
  • Manipuler les champs de la colonne Conteneur
  • Limite : Type de champs non disponibles
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
Une cellule de table peut contenir un ensemble de champs. De nombreux types de champs peuvent être inclus dans une colonne Conteneur :
  • champ Libellé,
  • champ de saisie,
  • champ Image,
  • champ Bouton,
  • ...
Il est possible de définir un champ principal pour la cellule. Ce champ sera celui utilisé par exemple :
  • pour les ajouts réalisés par programmation,
  • pour les tris,
  • pour la liaison avec les données (liaison avec une rubrique ou avec une variable), ...
WEBDEV - Code Serveur Les colonnes de type Conteneur sont disponibles pour les champs Table hiérarchique.
Comment créer une colonne de table de type Conteneur ?

Les différentes étapes

Pour créer une colonne d'un champ Table de type Conteneur :
  1. Créez si nécessaire un champ Table (Table fichier, Table par programmation ou Table sur variable).
  2. Créez une colonne de type Conteneur (soit par le menu contextuel du champ Table, soit depuis la fenêtre de description du champ Table).
  3. Agrandissez si nécessaire la hauteur des lignes du champ Table avec la souris.
  4. Positionnez les champs voulus dans la cellule Conteneur de la première ligne du champ Table. Il est possible de :
    • déplacer des champs existants dans la fenêtre vers la colonne Conteneur.
    • faire un glisser/déplacer des rubriques de l'analyse affichée dans le volet "Explorateur de projet".
  5. Dans la description de la colonne Conteneur, indiquez si nécessaire le champ principal de la colonne (onglet "Général") et validez.

Champ principal d'une colonne Conteneur

Le champ principal d'une colonne Conteneur correspond au champ manipulé par défaut dans la colonne. Par exemple :
  • Le tri de la colonne Conteneur sera réalisé sur le champ principal.
  • Les recherches réalisées dans une colonne Conteneur seront réalisées sur le champ principal.
  • Les ajouts, modifications, ... réalisés par programmation : la valeur de la colonne indiquée par exemple dans la fonction <Table>.AjouteLigne sera affectée au champ principal.
  • Les exports réalisés à partir du champ Table (exports vers Excel, Open Office, Word, ...) prendront en compte la valeur du champ principal de la colonne.
  • Si la colonne de type Conteneur est liée à un fichier de données ou à une variable, le champ effectivement lié sera le champ principal.
La définition d'un champ principal dans une colonne de type Conteneur n'est pas obligatoire.

Limitations

  • Il n'est pas possible de personnaliser le libellé des options des champs Sélecteur et Interrupteur pour chaque ligne dans une colonne de type Conteneur.
Utilisation d'une colonne de type Conteneur

Champ Table fichier ou champ Table sur variable

Un champ Table fichier peut contenir une ou plusieurs colonnes de type Conteneur. Les champs de cette colonne Conteneur peuvent par exemple afficher les enregistrements du fichier de données.
Dans ce cas, le champ Table est lié au fichier de données.
Les champs présents dans la colonne de type Conteneur sont chacun liés à la rubrique correspondante.
Si un champ principal est défini sur le champ Table, il est conseillé de :
  • solution 1 : conserver la liaison du champ principal à la rubrique du fichier de données. La colonne Conteneur n'est liée à aucune rubrique.
  • solution 2 : lier la colonne Conteneur à la rubrique associée au champ principal et supprimer la liaison au niveau du champ.
Liste des exemples associés :
WD Découverte Lien base de données Exemples découverte (WINDEV) : WD Découverte Lien base de données
[ + ] Cet exemple est une application simplifiée de gestion de contacts.

Cet exemple montre :
- le remplissage d'un champ Table à partir d'un fichier de données,
- le remplissage d'un champ Zone répétée à partir d'une requête SQL,
- la création d'un formulaire.

Champ Table par programmation

Un champ Table par programmation peut contenir une ou plusieurs colonnes de type Conteneur. Le champ principal de la colonne Conteneur sera directement manipulé par les fonctions de programmation du champ Table.
Par exemple, lors de l'ajout d'une ligne avec la fonction <Table>.AjouteLigne, seul le champ principal de la colonne sera affecté avec la valeur définie par la colonne. Si plusieurs champs doivent être initialisés dans la colonne, il est nécessaire d'utiliser la syntaxe décrite dans le paragraphe suivant. Par exemple :
NumLigne est un entier
NumLigne = TABLE_Table2.AjouteLigne("Moulain")
COL_Colonne1[NumLigne].SAI_Prenom = "Florence"

Manipuler les champs de la colonne Conteneur

Les champs d'une colonne Conteneur peuvent être manipulés grâce à la syntaxe suivante :
<Nom de la colonne>[<Numéro de Ligne>].<Nom du champ>
Quelques exemples :
  • Affectation d'une valeur à un champ :
    COL_Colonne1[NumLigne].SAI_Prenom = "Florence"
  • Affectation d'éléments à un champ Combo d'un conteneur :
    COL_Colonne1[NumLigne].COMBO_Combo1.Contenu = "Elément 1" + RC + "Elément 2"
  • Modification d'une propriété d'un champ :
    COL_Colonne1[NumLigne].PrixHT.Couleur = RougeClair
  • Indirection sur un champ se trouvant dans une colonne Conteneur :
    sNomChampDansColoneConteneur est une chaîne
    sNomChampDansColoneConteneur = "TABLE_AvecColConteneur.COL_Conteneur[" + ...
    nIndiceLigne + "].SAI_DansColConteneur"
    //ou
    //sNomChampDansColoneConteneur = "TABLE_AvecColConteneur[" + ...
    // nIndiceLigne + "].COL_Conteneur.SAI_DansColConteneur"
     
    Info({sNomChampDansColoneConteneur})
    Remarque : Pour un champ Table fichier, il est conseillé de manipuler les champs d'une colonne Conteneur dans l'événement "Affichage d'une ligne".
    Limite : Type de champs non disponibles
    WEBDEV - Code Serveur Dans une colonne de type Conteneur, seuls les champs suivants peuvent être utilisés :
    • Champ Zone de Texte Riche,
    • Champ Libellé simple,
    • Champ d'affichage formaté,
    • Champ Lien,
    • Champ Bouton,
    • Champ Image,
    • Champ de saisie,
    • Champ Combo,
    • Champ Sélecteur,
    • Champ Interrupteur,
    • Champ Liste,
    • Champ Calendrier,
    • Champ Notation,
    • Champ Potentiomètre,
    • Champ Code-Barre (non disponible dans les champs Table en mode navigateur),
    • Champ Lien social (non disponible dans les champs Table en mode Ajax ou Navigateur).
    Version minimum requise
    • Version 23
    Documentation également disponible pour…
    Commentaires
    récupérer le type
    comment fait-on pour récupérer le type d'un champ d'une colonne conteneur ?

    on peut alimenter une telle colonne d'une table avec par exemple du texte ou une image, mais la sauvegarde dans un fichier ne suit pas les mêmes règles car les types des rubriques sont différents. lors de l'enregistrement de chaque ligne de la table dans un fichier, il est nécessaire d'alimenter telle ou telle rubrique selon le type.

    Dans mon test, en mode trace, je vois le même type 40 (champ conteneur)
    quel que soit le contenu du champ, texte ou image.
    je ne vois pas le type du champ lui-même
    MARC CHERNET
    06 juil. 2022