Chercher dans liste

4D - Documentation   Français   English   German   Español   Japanese   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 11


Chercher dans liste ({*; }liste; valeur; portée{; tabEléments{; *}}) Entier long

ParamètreTypeDescription
**Si spécifié, liste est un nom d'objet (chaîne)
Si omis, liste est un numéro de référence de liste
listeRéfListe | ChaîneNuméro de référence de liste (si * omis) ou
Nom d'objet de type liste (si * passé)
valeurChaîneValeur à rechercher
portéeEntier0=Liste principale, 1=Sous-listes
tabElémentsTab Entier long- Si 2e * omis : tableau des positions des éléments trouvés
- Si 2e * passé : tableau des numéros de référence des
éléments trouvés
**- Si omis : utiliser la position des éléments
- Si passé : utiliser le numéro de référence des éléments
RésultatEntier long- Si 2e * omis : position de l'élément trouvé
- Si 2e * passé : numéro de référence de l'élément trouvé

Description

La commande Chercher dans liste retourne la position ou la référence du premier élément de liste qui équivaut à la chaîne passée dans valeur. Si plusieurs éléments sont trouvés, la fonction peut également remplir le tableau tabEléments avec la position ou la référence de chaque élément.

Si vous passez le premier paramètre optionnel *, vous indiquez que le paramètre liste est un nom d'objet (chaîne) correspondant à une représentation de liste dans le formulaire. Si vous ne passez pas ce paramètre, vous indiquez que le paramètre liste est une référence de liste hiérarchique (RéfListe). Si vous utilisez une seule représentation de liste ou travaillez avec les numéros de référence des éléments (le second * est omis), vous pouvez utiliser indifféremment l'une ou l'autre syntaxe. En revanche, si vous utilisez plusieurs représentations d'une même liste et travaillez avec les positions des éléments (le second * est passé), la syntaxe basée sur le nom d'objet est requise car la position des éléments peut varier d'une représentation à l'autre.

Note : Si vous utilisez le caractère @ dans le nom d'objet de la liste et que le formulaire contient plusieurs listes répondant à ce nom, la commande Chercher dans liste s'appliquera au premier objet dont le nom correspond.

Le second paramètre * vous permet d'indiquer si vous souhaitez travailler avec des positions courantes d'éléments (dans ce cas, ce paramètre doit être omis) ou des références absolues d'éléments (dans ce cas, il doit être passé).

Passez dans valeur la chaîne de caractères à rechercher. La recherche sera du type "est exactement", c'est-à-dire que la recherche de "bois"ne trouvera pas "boissons". Toutefois, vous pouvez utiliser le caractère @ pour définir des recherches du type "commence par", "se termine par" ou "contient".

Le paramètre portée vous permet de définir si la recherche doit porter uniquement sur le premier niveau de la liste ou si elle doit inclure toutes ses sous-listes. Passez 0 pour concentrer la recherche sur le premier niveau de la liste et 1 pour l'étendre à toutes les sous-listes.

Si vous souhaitez connaître la position ou le numéro de tous les éléments correspondant à valeur, passez un tableau d'entiers longs dans le paramètre facultatif tabEléments. Si nécessaire, le tableau sera créé et redimensionné par la commande. La commande remplira le tableau avec les positions (si le second * est omis) ou les numéros de référence (si le second * est passé) des éléments trouvés.

Les positions sont exprimées relativement à l'élément supérieur de la liste principale, en tenant compte de l'état courant déployé/contracté de la liste et de ses sous-listes.

Si aucun élément ne correspond à la valeur recherchée, la fonction retourne 0 et le tableau tabEléments est retourné vide.

Exemple

Soit la liste hiérarchique suivante :

   $vlItemPos:=Chercher dans liste(hList;"P@";1; $arrPos)
      `$vlItemPos vaut 5
      `$arrPos{1} vaut 5, $arrPos{2} vaut 17 et $arrPos{3} vaut 19
   $vlItemRef:=Chercher dans liste(hList;"P@";1;$arrRefs;*)
      `$vlItemRef vaut 7
      `$arrRefs{1} vaut 7, $arrRefs{2} vaut 18 et $arrRefs{3} vaut 23
   $vlItemPos:=Chercher dans liste(hList;"Date";1;$arrPos)
      `$vlItemPos vaut 9
      `$arrPos{1} vaut 9
   $vlItemRef:Chercher dans liste(hList;"Date";1;$arrRefs;*)
      `$vlItemRef vaut 11
      `$arrRefs{1} vaut 11
   $vlItemPos:=Chercher dans liste(hList;"Date";0;*)
      `$vlItemPos vaut 0   ` 

4D - Documentation   Français   English   German   Español   Japanese   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant