Find in list

4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 11


Find in list ({*; }Liste; Wert; Reichweite{; ZeilenArray{; *}}) Lange Ganzzahl

ParameterTypBeschreibung
**Mit * ist Liste ein Objektname (String)
Ohne * ist Liste eine Listenreferenznummer
ListeListeRef | StringMit *: Objektname der Liste
Ohne *: Referenznummer der Liste
WertStringZu suchender Wert
ReichweiteGanzzahl0=Hauptliste, 1=Unterliste
ZeilenArrayArray Lange GanzzahlOhne 2ten *: Array mit Positionen der
gefundenen Zeilen
Mit 2tem *: Array mit Referenznummer der
gefundenen Zeilen
**Ohne *: Verwende Position der Zeilen
Mit *: Verwende Referenznummer der Zeilen
FunktionsergebnisLange GanzzahlOhne 2. *: Position der gefundenen Zeilen
Mit 2. *: Referenznr der gefundenen Zeilen

Beschreibung

Die Funktion Find in list gibt die Position oder Referenz der ersten Zeile in der Liste zurück, die dem in Wert übergebenen String entspricht. Werden mehrere Zeilen gefunden, kann die Funktion auch ein Array ZeilenArray mit der Position oder Referenz jeder Zeile füllen.

Übergeben Sie den ersten optionalen Parameter *, ist der Parameter Liste der Objektname (String) der Darstellung der Liste im Formular. Geben Sie diesen Parameter nicht an, ist Liste die Referenznummer einer hierarchischen Liste (ListeRef). Verwenden Sie nur eine einzige Darstellung der Liste oder arbeiten mit Referenznummern für Einträge (der zweite * ist nicht übergeben), können Sie beide Arten verwenden.

Verwenden Sie dagegen mehrere Darstellungen derselben Liste und arbeiten mit Positionen von Einträgen (der zweite * ist übergeben), müssen Sie die Syntax mit dem Objektnamen verwenden, da die Position von Einträgen von einer Darstellung zur nächsten variieren kann.

Hinweis: Verwenden Sie das Zeichen @ im Objektnamen der Liste und enthält das Formular mehrere Listen, zu denen dieser Name passt, wird Find in list auf das erste Objekt mit dem passenden Namen angewandt.

Mit dem zweiten * definieren Sie, ob Sie mit den aktuellen Positionen der Zeilen (* nicht übergeben) oder mit den absoluten Referenzen der Zeilen (* übergeben) arbeiten wollen.

Im Parameter Wert übergeben Sie die zu suchenden Zeichenketten. Die Suche ist vom Typ „ist genau", d.h. die Suche nach „Holz" findet nicht das Wort „Holzhaus". Sie können jedoch das Jokerzeichen (@) für Suchläufe vom Typ "beginnt mit", "endet mit" oder "enthält" verwen-den.

Der Parameter Reichweite legt fest, ob die Suche nur auf der ersten Ebene der Liste oder auch mit allen Unterlisten ausgeführt wird. Mit 0 (Null) begrenzen Sie die Suche auf die erste Ebene der Liste, mit 1 wird sie auch auf alle Unterlisten ausgeweitet.

Um die Position oder Zahl aller Zeilen zu suchen, die Wert entsprechen, übergeben Sie im optionalen Parameter ZeilenArray ein Array vom Typ Lange Ganzzahl. Die Funktion erstellt bei Bedarf das Array und passt es an. Sie füllt das Array mit den Positionen (2ter * ist nicht übergeben) oder den Referenznummern (2ter * ist übergeben) der gefundenen Ein-träge.

Die Positionen werden in Bezug auf den obersten Eintrag in der Haupt-liste angegeben. Dabei wird auch der aktuelle Status auf-/zugeklappt der Liste und Unterlisten berücksichtigt.

Entspricht keine Zeile dem gesuchten Wert, gibt die Funktion 0 (Null) zurück und das Array ZeilenArray wird leer zurückgegeben.

Beispiel

Wir gehen von folgender hierarchischen Liste aus:

   $vlItemPos:=Find in list(hList;"P@";1; $arrPos)
      `$vlItemPos equals 6
      `$arrPos{1} equals 6 and $arrPos{2} equals 11
   $vlItemRef:=Find in list(hList;"P@";1;$arrRefs;*)
      `$vlItemRef equals 7
      `$arrRefs{1} equals 7 and $arrRefs{2} equals 18
   $vlItemPos:=Find in list(hList;"Date";1;$arrPos)
      `$vlItemPos equals 9
      `$arrPos{1} equals 9 and $arrPos{2} equals 16
   $vlItemRef:Find in list(hList;"Date";1;$arrRefs;*)
      `$vlItemRef equals 11
      `$arrRefs{1} equals 11 and $arrRefs{2} equals 23
   $vlItemPos:=Find in list(hList;"Date";0;*)
      `$vlItemPos equals 0
Anwendung des Befehls

Hierarchical Lists in 4D v11 SQL


4D - Documentation   Français   English   German   Spanish   Japanese   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next