Vous définissez vos critères de recherche dans la fenêtre "Chercher dans le développement". Pour cela :
Cliquez sur le bouton en forme de loupe dans la barre d’outils de 4D. OU Choisissez la commande Chercher dans le développement dans le menu Edition. La fenêtre de recherche dans le développement apparaît :
Les zones de cette fenêtre varient dynamiquement en fonction des sélections effectuées dans les menus.
Construisez votre recherche à l'aide des différents menus et zones de saisie de la zone "Définition" et saisissez éventuellement la chaîne de caractères à rechercher. Ces éléments sont décrits dans le paragraphe suivant.
Modifiez si nécessaire les options de recherche. Ces options sont décrites dans le paragraphe “Options de recherche” ci-dessous.
Cliquez sur le bouton OK (ou appuyez sur la touche Entrée). La recherche s’effectue. A l’issue de la recherche, la fenêtre de résultat apparaît, listant les objets contenant la chaîne saisie (cf. section Fenêtre de résultat). Note : Vous pouvez interrompre à tout moment une recherche en cours en appuyant sur la touche Echap.
Une fois que vous avez effectué une recherche, la fenêtre de recherche conserve en mémoire la valeur saisie dans la zone de chaîne à rechercher. Cette valeur, ainsi que toutes celles qui ont été saisies lors de la même session en recherche rapide ou en recherche avancée, sont sélectionnables par l’intermédiaire du menu :
Vous pouvez lancer des recherches depuis la barre d'outils du mode Développement.
Si aucune recherche n'avait encore été effectuée au cours de la session, vous pouvez saisir une chaîne de caractères puis appuyer sur la touche Retour chariot ou Entrée. Une recherche du type "le texte qui contient" avec les options par défaut est automatiquement effectuée.
Si vous souhaitez réitérer une recherche ayant déjà été effectuée au cours de la session, sélectionnez-la dans la combo box.
Si la recherche avait été construite depuis la fenêtre de recherche, elle est effectuée avec les options éventuellement définies dans cette fenêtre.
La recherche démarre immédiatement. A l’issue de la recherche, la fenêtre de résultat apparaît.
Le premier menu de la fenêtre, Chercher, vous permet de définir le type d’élément à rechercher. Vous disposez des choix suivants :
Le texte : dans ce cas, 4D recherchera simplement une chaîne de caractères parmi la totalité du développement. La recherche est effectuée en mode texte brut, sans tenir compte du contexte. Par exemple, vous pouvez rechercher le texte "ALERTE("Erreur numéro :"+" ou "bouton27" Dans ce mode, il n’est pas possible d’utiliser de caractère joker. Le "@" est considéré comme un caractère standard.
Le commentaire : une recherche de ce type équivaut à la précédente mais est restreinte au contenu des commentaires dans le code (lignes débutant par //) et dans la fenêtre de l'Explorateur (cf. Utiliser les commentaires). Ce principe permet par exemple de rechercher tous les commentaires contenant la chaîne "A vérifier".
Note : Le résultat final de ces deux types de recherches dépend étroitement du paramétrage du menu Qui (cf. paragraphe Mode de recherche).
L’expression de langage : permet de rechercher toute expression 4D valide, effectuée en mode "contient". La notion de validité est importante car 4D doit pouvoir évaluer l’expression pour la rechercher. Par exemple, une recherche sur l’expression "[clients" n’aboutira pas (expression invalide) alors que "[clients]" est correct.
Cette option est particulièrement adaptée aux recherches des affectations et des comparaisons de valeurs. Par exemple : recherche de "mavar:=" (affectation) recherche de "mavar=" (comparaison)
Un élément du langage : permet de rechercher précisément un élément de langage via son nom. 4D distingue les éléments suivants :
Méthode projet : nom de méthode projet, par exemple "M_Ajout". A noter que cette recherche (associée au mode est exactement) équivaut à la commande contextuelle Chercher les références dans l’éditeur de méthodes (cf. paragraphe ).
Formulaire : nom de formulaire, par exemple "Entrée". La commande effectue une recherche parmi les formulaires projet et les formulaires table.
Table ou champ : nom de table ou de champ, par exemple "Clients".
Variable : par exemple "$mavar".
Constante 4D : par exemple "est une image".
Chaîne entre guillemets : constante texte littérale, c’est-à-dire toute valeur incluse entre des guillemets dans l’éditeur de code ou insérée dans les zones de texte de l’éditeur de formulaires (texte statique ou zone de groupe). Par exemple, la recherche de "Martin" aboutira si votre code contient la ligne CHERCHER ([Clients];[Clients]Nom="Martin")
Commande 4D : commande 4D, par exemple "Alerte".
Commande de Plug-in : commande de plug-in installé dans l’application, par exemple "WR Chercher".
Tout : cette option permet d’effectuer une recherche parmi tous les objets du mode Développement. Dans ce cas, seul le menu de date de modification est disponible. Typiquement, cette option permet par exemple de rechercher "tous les objets modifiés aujourd’hui".
Le menu de mode de recherche (libellé qui, qui est ou dont le nom, en fonction de la définition de la recherche) permet de préciser la manière dont la valeur saisie va être recherchée. Le contenu de ce menu varie en fonction du type d’élément à rechercher sélectionné dans le menu précédent.
Recherche de texte ou de commentaire : lorsque ce type de recherche est sélectionné, le menu propose les options suivantes :
Contient : recherche la chaîne parmi les textes du mode Développement. La recherche de "var" trouvera "mavar", "variable1" ou "avarie".
Contient le mot : recherche la chaîne en tant que mot parmi les textes du mode Développement. La recherche de "var" ne trouvera que les occurrences exactes de "var", elle ne trouvera pas "mavar". En revanche, elle trouvera "var:=10" ou "ID+var" car les symboles : ou + sont des séparateurs de mots.
Commence par / Se termine par : recherche la chaîne en début ou en fin de mot (recherche de texte) ou de ligne de commentaire (recherche de commentaire). En mode "Texte se termine par", la recherche de "var" trouvera "mavar".
Recherche d’élément du langage : lorsque ce type de recherche est sélectionné, le menu propose les options standard (est exactement, contient, commence par, se termine par). Ces options sont semblables à celles proposées dans les versions précédentes de 4D. A noter que vous pouvez utiliser le joker de recherche (@) avec l’option est exactement (retourne tous les objets du type défini).
Ce menu permet de restreindre la recherche en fonction de la date de création/de modification de l'élément parent (c'est-à-dire, par exemple, de la méthode contenant la chaîne recherchée). Ce menu contient des critères de date standard (est égale à, est antérieure à, est postérieure à, est différente de) ainsi que plusieurs options vous permettant de désigner en un clic une période de recherche prédéfinie :
est aujourd’hui : période débutant à 00:00 h du jour en cours.
est depuis hier : période incluant le jour en cours et le jour précédent.
est cette semaine : période débutant le lundi de la semaine en cours.
est ce mois-ci : période débutant le 1er jour du mois courant.
Vous pouvez sélectionner diverses options permettant d’accélérer vos recherches :
Chercher dans les formulaires : lorsque cette option est désélectionnée, la recherche globale est effectuée partout dans la base, sauf dans les formulaires et les noms de formulaires.
Chercher dans les méthodes : lorsque cette option est désélectionnée, la recherche globale est effectuée partout dans la base, sauf dans les méthodes et les noms de méthodes.
Sensible à la casse : lorsque cette option est sélectionnée, la recherche tient compte de la casse des caractères tels qu’ils ont été saisis dans la boîte de dialogue de recherche. Par exemple, la recherche de “MaVar” ne trouvera pas “maVar”.
Une recherche efficace résulte de la combinaison judicieuse des options des menus de la fenêtre de recherche. Afin d’illustrer le fonctionnement de la recherche dans 4D, voici des exemples de recherches types et les paramétrages à effectuer.
Recherche de tous les endroits où une valeur a été affectée directement à la variable vTInit :
Recherche des références au formulaire "Entrée" de la table [Clients] :
Recherche des appels des méthodes dont le nom débute par "HR_" :
Liste de toutes les variables de la base :
Recherche du mot-clé "super_utilisateur" dans les commentaires écrits dans la semaine :