Faq/Base/135/fr

From The Document Foundation Wiki
< Faq‎ | Base‎ | 135
Jump to: navigation, search

Comment implémenter une suggestion d'index ?

Lors de la saisie d'un champ on souhaite pouvoir choisir dans la liste des valeurs déjà contenues dans le champ. Dans Calc ceci est disponible pour les valeurs textuelles avec la liste de sélection (clic droit ou Alt+).

On souhaite obtenir :

copie d'écran affichage d'index en liste
Sélection dans un index sans doublons

Base permet de réaliser cela mais uniquement dans un formulaire :

  • Autrement dit, pas en saisie "directe" de table,
  • Si on souhaite une saisie en mode "tableau" (feuille de données), il suffit de créer un formulaire en choisissant cette présentation dans l'assistant ; la saisie se fera alors via un contrôle "table".

Le principe sera d'utiliser un contrôle Zone combinée dont le type de contenu sera Sql et le contenu une requête du type :

 SELECT DISTINCT "Instrument" FROM "Table1" ORDER BY "Instrument" ASC

Nota :

  • Le mot-clé DISTINCT permet de lister sans doublons.
  • La liste est ordonnée pour faciliter la recherche.
  • Il est conseillé d'ajouter un index sur le champ recherché (clic sur le bouton Ébauche d'index en mode édition de table).

Ci-dessous les copies d'écran du paramétrage :

copie d'écran paramétrage du contrôle
Source SQL de la Zone combinée

Utiliser un contrôle Zone combinée autorise la saisie de nouvelles valeurs. Ces dernières sont prises en compte instantanément dans la liste mais sont ajoutées par défaut en fin de liste jusqu'à la prochaine actualisation. On peut forcer l'actualisation en associant à l'événement A la réception du focus du contrôle, une macro du type :

 option explicit
Sub PysAcutaliserListe(PysEvent)
PysEvent.source.model.refresh
End Sub