Comment faire pour capturer l’entrée dans une zone de liste déroulante dans Visual FoxPro


Résumé


Microsoft Visual FoxPro vous permet d’utiliser dans les formulaires, les zones de liste déroulante pour sélectionner ou entrer des données dans le formulaire. Zones de liste déroulante permettent de données provenir des sources suivantes :
  • Valeur
  • Alias
  • Instructions SQL
  • Requêtes
  • Tableaux
  • Champs
  • Fichiers
  • Structures
  • Menus contextuels
Cet article décrit comment entrer des informations qui ne peuvent pas être contenues dans la liste déroulante du contrôle zone de liste déroulante et modifiez une valeur de champ dans une table avec la valeur entrée dans la zone de liste déroulante.

Plus d'informations


Pour entrer des données dans un contrôle ComboBox , puis le stocker à un champ dans une table si la valeur a changé, procédez comme suit :
  1. Créer un nouveau formulaire et placez le code suivant dans sa procédure d’événement Load :
          PUBLIC ARRAY aTitle(1)
    SELECT DISTINCT(customer.contact) FROM customer ;
    INTO ARRAY aTitle
  2. Ajoutez la table client à partir du répertoire \Data vers l’environnement de données du formulaire. Vous pouvez trouver le répertoire \Data dans un des emplacements suivants :
       Visual FoxPro 3.x: VFP\Samples\Mainsamp
    Visual FoxPro 5.x: VFP\Samples
    Visual FoxPro 6.0: \MSDN98\98VS\1033\Samples
    Visual FoxPro 7.0,8.0,9.0: \Samples\Data
  3. Placez une zone de texte sur le formulaire et affectez à sa propriété SourceContrôle (ControlSource) :
          Customer.Contact
  4. Placez une zone de liste déroulante sur le formulaire. ATitle et sa propriété RowSourceType 5 - tableau, définissez sa propriété contenu (RowSource) .
  5. Dans la procédure InteractiveChange , tapez les lignes de code suivantes :
          IF Customer.Contact != Thisform.combo1.DisplayValue
    REPLACE Customer.Contact WITH Thisform.combo1.DisplayValue
    Thisform.Text1.Refresh
    SELECT DISTINCT(customer.contact) FROM customer ;
    INTO ARRAY aTitle
    ENDIF
  6. Dans la procédure LostFocus , tapez les lignes de code suivantes :
          IF Customer.Contact != Thisform.combo1.DisplayValue
    REPLACE Customer.Contact WITH Thisform.combo1.DisplayValue
    Thisform.Text1.Refresh
    SELECT DISTINCT(customer.contact) FROM customer ;
    INTO ARRAY aTitle
    ENDIF
    thisform.combo1.displayvalue=""
  7. Ajoutez un bouton de commande au formulaire et tapez le code suivant dans son
    Procédure d’événement Click :
          SKIP
    ThisForm.Combo1.DisplayValue=Customer.Contact
    ThisForm.Refresh
  8. Ajoutez un autre bouton de commande au formulaire et insérez le code suivant dans sa procédure d’événement Click :
          SKIP -1
    ThisForm.Combo1.DisplayValue=Customer.Contact
    ThisForm.Refresh
  9. Enregistrez et exécutez le formulaire. Modifiez la valeur dans la zone de liste modifiable et passer par l’intermédiaire de la table en utilisant les boutons de commande. Fermez le formulaire et parcourir la table des clients . Examinez le champ Contact . Les modifications entrées dans la zone de liste modifiable apparaîtra dans le champ.

Références


Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

139769 comment ajouter une nouvelle valeur à une liste de valeurs dans une zone de liste déroulante