Affichage et édition de données dans les boîtes liste et les boîtes à options de référence
Remonter à Affichage d'un seul enregistrement
Les boîtes liste de référence et les boîtes à options de (Vcl.DBCtrls.TDBLookupListBox et Vcl.DBCtrls.TDBLookupComboBox) proposent à l'utilisateur une liste limitée de choix à partir desquels il peut définir une valeur de champ correcte. Lorsqu'un utilisateur sélectionne un élément de liste, la valeur de champ correspondante est modifiée dans le sous-ensemble de données.
Prenons l'exemple d'un bon de commande dont les champs sont liés à OrdersTable. OrdersTable contient un champ CustNo correspondant à un numéro d'ID client, mais OrdersTable ne contient aucune autre information sur le client. CustomersTable, en revanche, contient un champ CustNo correspondant à un numéro d'ID client ainsi que des informations supplémentaires, telles que l'entreprise et l'adresse du client. Lors de la facturation, il serait pratique que le bon de commande permette à un employé de sélectionner un client d'après le nom de l'entreprise au lieu de l'ID client. Un composant TDBLookupListBox affichant le nom de toutes les entreprises dans CustomersTable permettra à un utilisateur de sélectionner le nom de l'entreprise dans la liste et de placer CustNo sur le bon de commande.
Ces contrôles de référence dérivent la liste d'éléments d'affichage depuis l'une des deux sources suivantes :
Un champ de référence défini pour un ensemble de données. Pour spécifier des éléments de boîte liste à l'aide d'un champ de référence, l'ensemble de données auquel le contrôle est lié doit déjà définir un champ de référence.
Pour spécifier le champ de référence pour les éléments d'une boîte liste
- Affectez à la propriété DataSource de la boîte liste la source de données de l'ensemble de données contenant le champ de référence à utiliser.
- Choisissez le champ de référence à utiliser dans la liste déroulante de la propriété DataField.
- Lorsque vous activez une table associée à un contrôle de référence, il identifie son champ de données en tant que champ de référence et affiche les valeurs appropriées.
Une clé, un champ de données et une source de données secondaires. Si vous n'avez pas défini de champ de référence pour un ensemble de données, vous pouvez établir une relation de même type à l'aide d'une source de données secondaire, d'une valeur de champ à rechercher dans la source de données secondaire et d'une valeur de champ à renvoyer comme élément de liste.
Pour spécifier une source de données secondaire pour les éléments d'une boîte liste
- Affectez à la propriété DataSource de la boîte liste la source de données du contrôle.
- Choisissez un champ pour insérer les valeurs de référence depuis la liste déroulante de la propriété DataField'. Le champ choisi ne doit pas être un champ de référence.
- Affectez à la propriété ListSource de la boîte liste la source de l'ensemble de données contenant le champ dont vous voulez référencer les valeurs.
- Pour la propriété KeyField, choisissez dans la liste déroulante un champ à utiliser comme clé de référence. La liste déroulante affiche les champs de l'ensemble de données associé à la source de données spécifiée à l'étape 3. Le champ choisi n'a pas besoin de faire partie d'un index, mais si c'est le cas, les performances en seront améliorées.
- Dans la liste déroulante de la propriété ListField, choisissez un champ dont les valeurs sont à renvoyer. Cette liste déroulante affiche les champs de l'ensemble de données associé à la source que vous avez spécifiée à l'étape 3.
Lorsque vous activez une table associée à un contrôle de référence, il reconnaît que les éléments de sa liste sont dérivés d'une source secondaire et affiche des valeurs issues de celle-ci.
Pour définir le nombre d'éléments simultanément affichés dans un contrôle TDBLookupListBox, utilisez la propriété RowCount. La hauteur de la boîte liste s'adapte au nombre de lignes défini.
Pour définir le nombre d'éléments affichés dans la liste déroulante de TDBLookupComboBox, utilisez la propriété DropDownRows.
Remarque : Vous pouvez également définir une colonne de grille de données pour qu'elle fonctionne comme une boîte à options de référence. Pour des détails sur la manière de procéder, voir Définition d'une colonne de liste de référence.