4D v14.3Chercher dans liste |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
Chercher dans liste
|
Chercher dans liste ( {* ;} liste ; valeur ; portée {; tabEléments {; *}} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
* | Opérateur |
![]() |
Si spécifié, liste est un nom d’objet (chaîne) Si omis, liste est un numéro de référence de liste | |||||
liste | RefListe, Chaîne |
![]() |
Numéro de référence de liste (si * omis) ou Nom d'objet de type liste (si * passé) | |||||
valeur | Chaîne |
![]() |
Valeur à rechercher | |||||
portée | Entier |
![]() |
0=Liste principale, 1=Sous-listes | |||||
tabEléments | Tableau 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 | |||||
* | Opérateur |
![]() |
- Si omis : utiliser la position des éléments - Si passé : utiliser le numéro de référence des éléments | |||||
Résultat | Entier long |
![]() |
- Si 2e * omis : position de l’élément trouvé - Si 2e * passé : numéro de référence de l’élément trouvé | |||||
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.
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`
Produit : 4D
Thème : Listes hiérarchiques
Numéro :
952
Nom intl. : Find in list
Créé : 4D v11 SQL
4D - Langage ( 4D v12.4)
4D - Langage ( 4D v11 SQL Release 6)
4D - Langage ( 4D v14 R3)
4D - Langage ( 4D v14 R2)
4D - Langage ( 4D v13.5)
4D - Langage ( 4D v14.3)
4D - Langage ( 4D v14 R4)