DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Type de recherche
  • Paramètre
  • Majuscules/Minuscules
  • Recherche et sélection d'un élément présent dans un champ Liste ou un champ Combo
  • Recherche dans un champ Liste fichier ou dans un champ Combo fichier : recherche sur la valeur mémorisée ou sur la valeur affichée
  • Recherche et sélection dans un champ Liste fichier
  • Divers
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Recherche un élément dans un champ Liste (liste classique ou liste image) ou un champ Combo (y compris les valeurs décrites par la fonction gValeurMémorisée).
Remarque : La fonction <Liste>.Cherche peut être utilisée indifféremment sur :
  • les champs Liste fichier ou Liste par programmation,
  • les champs Liste monosélection ou multisélection.
Exemple
// Recherche de l'élément "Dubois" dans le champ Liste "LISTE_ListeClient"
ResCherche = LISTE_ListeClient.Cherche("Dubois")
Etats et Requêtes
// Recherche de l'élément "Dubois" dans le champ Liste fichier "LISTE_ListeClient"
// Recherche à l'identique à partir de l'élément 5
ResCherche = LISTE_ListeClient.Cherche("Dubois", Vrai, 5)
Syntaxe
<Résultat> = <Champ Liste>.Cherche(<Élément recherché> [, <Type de recherche> [, <Début de la recherche>]])
<Résultat> : Entier
  • Indice de l'élément trouvé.
  • -1 si aucun élément ne correspond à la recherche.
L'élément trouvé n'est pas sélectionné. Pour sélectionner l'élément trouvé, utilisez la fonction <Liste>.SelectPlus.
<Champ Liste> : Nom de champ
Nom du champ Liste (ou Combo) à manipuler.
<Élément recherché> : Chaîne de caractères
Élément à rechercher dans le champ Liste (ou Combo) spécifié.
<Type de recherche> : Booléen optionnel
  • Vrai (valeur par défaut) pour une recherche à l'identique,
  • Faux pour une recherche générique.
<Début de la recherche> : Entier optionnel
Indice de départ de la recherche dans le champ Liste ou Combo.
Si ce paramètre n'est pas spécifié, la recherche est effectuée dans tout le champ. Ce paramètre est ignoré pour les champs manipulés par programmation.
Remarques

Type de recherche

  • Recherche à l'identique :
    Seuls les éléments ayant une valeur strictement égale à <Élément recherché> sont retournés par la fonction <Liste>.Cherche. Par exemple :
    // Retourner tous les "Dupond" du champ Liste "LISTE_Nom"
    LISTE_Nom.Cherche("Dupond")
  • Recherche générique :
    Les éléments commençant par <Élément recherché> sont retournés par la fonction <Liste>.Cherche. Par exemple :
    // Retourner tous les noms commençant par "DUP"
    LISTE_Nom.Cherche("DUP", Faux)

Paramètre <Début de la recherche>

Le paramètre <Début de la recherche> permet de rechercher toutes les occurrences d'une chaîne dans un champ Liste ou Combo.
Par exemple, pour compter le nombre de noms commençant par "DUP" dans le champ "LISTE_ListeClient" :
Indice est un entier
Cpt est un entier = 0
// Se positionner sur le premier élément correspondant
Indice = LISTE_ListeClient.Cherche("DUP", Faux)
TANTQUE Indice <> -1
Cpt++
// Recherche du nom suivant commençant par "DUP"
Indice = LISTE_ListeClient.Cherche("DUP", Faux, Indice + 1)
FIN
Etats et Requêtes

Majuscules/Minuscules

  • Si le champ est un champ Liste par programmation, la recherche ne tient pas compte des majuscules et des minuscules.
  • Si le champ est un champ Liste fichier, la recherche sur les rubriques de type "Clé" tient compte des options de recherche définies dans l'éditeur d'analyses (onglet "Général" de la description de la rubrique).
Etats et Requêtes

Recherche et sélection d'un élément présent dans un champ Liste ou un champ Combo

Pour rechercher et/ou sélectionner un élément présent dans un champ Liste fichier ou un champ Combo fichier, il est également possible d'utiliser la syntaxe suivante :
LISTE_ListeCommande.RubriqueMémorisée = "IDClient"
// Recherche et sélection de l'élément dont le IDClient est "135"
LISTE_ListeCommande = 135
// Si l'élément recherché n'est pas trouvé, LISTE_ListeCommande vaudra -1
Etats et Requêtes

Recherche dans un champ Liste fichier ou dans un champ Combo fichier : recherche sur la valeur mémorisée ou sur la valeur affichée

Cas 1 : Le champ Liste ou Combo est alimenté par un fichier de données (option "Accès direct") :
La recherche se fait suivant la valeur de la fonction gValeurMémoriséeActive :
  • Si gValeurMémoriséeActive(Champ, Vrai) (par défaut) : La fonction <Liste>.Cherche recherche sur la "rubrique de parcours" déclarée dans l'onglet "Contenu" de la description du champ.
  • Si gValeurMémoriséeActive(Champ, Faux) : La fonction <Liste>.Cherche recherche sur la "rubrique affichée" déclarée dans l'onglet "Contenu" de la description du champ.
Cas 2 : Le champ Liste ou Combo est alimenté par un fichier de données (option "Chargé en mémoire") :
La fonction <Liste>.Cherche recherche sur la "rubrique affichée" déclarée dans l'onglet "Contenu" de la description du champ.
Etats et Requêtes

Recherche et sélection dans un champ Liste fichier

Si les options pour le remplissage du champ Liste sont renseignées dans la fenêtre de description du champ (onglet "Contenu"), il est possible d'utiliser la syntaxe suivante pour rechercher et sélectionner un élément dans un champ Liste :
NomDuChampListe = ElémentRecherché
Les options pour le remplissage du champ Liste sont les suivantes :
  • Fichier parcouru,
  • Rubrique affichée,
  • Rubrique de parcours.
Description du champ Liste Fichier
Etats et Requêtes

Divers

  • Pour effectuer une recherche dans un champ Table ou dans un champ Combo avec table, utilisez la fonction TableCherche.
  • La fonction <Liste>.Cherche peut être utilisée sur une colonne d'un champ Table de type "Combo".
Composante : wd270obj.dll
Version minimum requise
  • Version 23
Documentation également disponible pour…
Commentaires
Alimenté par un fichier avec parcours inversé sur la rubrique =>
Lorsque que la rubrique est classée en parcours inversé, l'indice est incohérent entre la recherche et la sélection.
Si on veut sélectionner automatiquement la rubrique en fonction d'une recherche, la fonction ListeCherche trouve bien le bon indice

nIndiceTrouvé est un entier = ListeCherche(COMBO_Test,sMaRecherche,Vrai)

Par contre, à la sélection , il faudra prendre l'indice comme s'il était classé en ordre croissant pour avoir une sélection effective :
COMBO_Saison=COMBO_Test..Occurrence+1-nIndiceTrouvé
Pierre LIÉTAR
09 mar. 2019