Die Funktion collection.filter( ) gibt eine neue Collection mit den Elementen der ursprünglichen Collection zurück, für die das Ergebnis von MethodenName wahr ist. Diese Funktion gibt eine flache Kopie zurück, d.h. Objekte oder Collections in beiden Collections nutzen dieselbe Referenz. Ist die ursprüngliche Collection eine shared collection, ist die zurückgegebene Collection ebenfalls eine shared collection.
Hinweis: Diese Funktion ändert nicht die ursprüngliche Collection.
In MethodenName übergeben Sie den Namen der Methode zum Bewerten der Collection Elemente, zusammen mit den Parametern in param (optional). MethodenName kann das Filtern mit oder ohne Parameter durchführen und muss in $1.result wahr für jedes zutreffende Element zurückgeben und so in die neue Collection setzen.
MethodenName empfängt folgende Parameter:
- in $1.value: Elementwert zum Filtern
- in $2: param
- in $N...: param2...paramN
MethodenName setzt folgende Parameter:
- $1.result (boolean): wahr, wenn der Elementwert zur Filterbedingung passt und behalten werden soll.
- $1.stop (boolean, optional): wahr, um Aufruf der Methode zu stoppen. Der zurückgegebene Wert ist der letzte bewertete Wert.
Die Collection von Textelementen mit einer Länge kleiner als 6 erhalten:
Der Code für die Methode LengthLessThan lautet:
C_OBJECT($1)
C_LONGINT($2)
If(Value type($1.value)=Is text)
$1.result:=(Length($1.value))<$2
End if
Elemente nach ihrem Wertetyp filtern:
Der Code für die Methode TypeLookUp lautet:
C_OBJECT($1)
C_LONGINT($2)
If(OB Get type($1;"value")=$2)
$1.result:=True
End if