|
|
|
|
|
- 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
Colonne de champ Table de type Conteneur (syntaxe préfixée)
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,
champ Graphe, champ Table, champ Fenêtre interne, - etc.
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), ...
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 : - Créez si nécessaire un champ Table (Table fichier, Table par programmation ou Table sur variable).
- 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).
- Agrandissez si nécessaire la hauteur des lignes du champ Table avec la souris.
- 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".
- 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 ou 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, etc.) 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 Dans les colonnes de type Conteneur, les champs Interrupteur doivent être affectés avec une chaîne au format "<Vrai/Faux>;<Vrai/Faux>;<Vrai/Faux>...". De la même façon, la valeur renvoyée par ces champs Interrupteur est une chaîne au format "<Vrai/Faux>;<Vrai/Faux>;<Vrai/Faux>...". - 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.
Pour utiliser un champ avec une valeur différente à chaque ligne dans une colonne de type Conteneur, il suffit de mettre ce champ dans une fenêtre interne et d'insérer un champ fenêtre interne dans la colonne. Cette astuce peut être utilisée par exemple pour les champs de type Sélecteur, Interrupteur, etc.
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 :
|
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"
Info({sNomChampDansColoneConteneur})
Ajout d'une ligne dans un champ Table contenu dans une colonne Conteneur :
TABLE_AVEC_TABLE_INTEGREE[NumLigne].TABLE_Dans_Conteneur.AjouteLigne("Contenu_Col1", "Contenu_Col2")
Manipulation d'un champ Interrupteur inséré dans une fenêtre interne :
TABLE_SansNom1[NumLigne].FI_SansNom1.INT_Interrupteur[Indice] = Vrai
Changer la fenêtre interne contenue dans un champ Fenêtre interne d'une colonne Conteneur :
ChangeFenêtreSource(TABLE_SansNom1[NumLigne].CFI_ChampFenêtreInterne, FI_FenêtreInterne1)
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
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|