Démo d'une grille avec recherche incrémentale sur un ou plusieurs champs et sans textbox supplémentaire. Cette appli utilise la classe [ingrid.vcx] de: Classy Components Inc. (www.ClassyComponents.com) by R. Scott Mackay (Scott@ClassyComponents.com) Mise dans le domaine publique par l'auteur. Cette classe permet la recherche incrementale dans une grid elle intercepte les pressions sur le clavier et positionne le curseur par un locate ou un seek (si les indexes sont disponibles). L'avantage de la classe est la prévisualisation de la recherche dans le 'header/caption" de la colonne du grid. (ex : la recherche est effectuée sur la 2eme colonne le header affiche les caractères entrés 'MOH')
Ajout : * Un click droit sur une des colonnes, sélectionne l'index corrrespondant et active la recherche incrémentale dans cette colonne * Le contrôle ingrid.vcx peut être ajouté a autant de colonne que nécessaire y compris SANS index, et sur les vues. * Un double click sur un des 2 colonne affiche le choix. NB: Dans la démo, la DBF n'est pas fermée après le choix (double-click) mais uniquement après [Abandon] La fermeture ou non devra être gérée par le programme. *=========================================================================== PEMs (Propriétés Events Methodes)
cLocateExpression: Expression à localiser par SearchString (Utiliser ce contrôle si il n'y a pas de TAG index disponible pour continuer la recherche). cOrderTag: Tag Index pour contrôler l'ordre d'affichage de la colonne active (laisser vide pour utiliser l'index courant). cSeekTag: Tag Index utilisé pour le seek lors de la recherche (laisser vide pour utiliser le cOrderTag ou l'index courant). lInGridActive: Flag pour activer/deasactiver l'interception incrémentale des clés clavier. lSearchPreview: Flag pour activer/deasactiver la visualisation des lettres dans le header de la colonne. PEMs protégés [cHoldCaption]: Mémorisation dnom de l'entête de la colonne (caption) pour permettre la restauration. [cSearchString]: Chaîne à rechercher utilisée pour le SEEK. [KeySeek]: Méthode de SEEK utilisée par InGrid. [lSeekMode]: Flag pour la suppression du GotFocus/LostFocus pendant l'opération de recherche. [nHoldRecord]: Mémorisation/restauration de l'enregistrement courant en cas de seek erronné [nLastPress]: Dernière clé activée au clavier. INSTRUCTIONS GENERALES : - Ajouter le contrôle InGrid a chaque colonne devant bénéficier de la recherche incrémentale suivant les différents TAG index Désavantage nécessite plus de travail - InGrid doit être activé comme contrôle actif dans chaque colonne. - Si les PEMs de chaque contrôle sont similaires pour chaque colonne, éventuellement créer une sous-classe . |
Pour effacer l'objet text1 de la colonne concernée de la form après y avoir placé l'objet InGrid consulter la procédure mentionnée sur BeFOX:
http://www.emsystems.be/befox/articles.php?lng=fr&pg=307
Guy Bonemme