Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Find in field
|
Find in field ( ZielFeld ; Wert ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
ZielFeld | Feld |
![]() |
Feld zum Ausführen der Suche | |||||
Wert | Feld, Variable |
![]() |
Zu suchender Wert | |||||
![]() |
Gefundener Wert | |||||||
Funktionsergebnis | Lange Ganzzahl |
![]() |
Nummer des gefundenen Datensatzes oder -1, wenn kein Datensatz gefunden wurde | |||||
Die Funktion Find in field gibt die Nummer des ersten Datensatzes zurück, dessen Feld ZielFeld gleich Wert ist. Werden keine Datensätze gefunden, gibt Find in field den Wert -1 zurück.
Nach Aufrufen dieser Funktion enthält Wert den gefundenen Wert. Damit können Sie auch Suchen mit dem Jokerzeichen (“@”) in Feldern vom Typ Alpha durchführen und dann den gefundenen Wert wiederfinden.
Hinweis: Nach diesem Prinzip können Sie in Wert keine Parameter $1, $2, etc. verwenden, da dies im kompilierten Modus zu Funktionsstörungen führen würde. Übergeben Sie ein Feld in Wert, beachten Sie, dass dieser Wert bei erfolgreicher Suche erneut zugewiesen wird (insbesondere der Befehl Modified record gibt Wahr für den aktuellen Datensatz der Tabelle zurück).
Find in field verändert weder die aktuelle Auswahl noch den aktuellen Datensatz.
Diese Funktion ist schnell und hilfreich, um Doppeleinträge während der Dateneingabe zu verhindern.
Historischer Hinweis: In früheren 4D Versionen hieß diese Funktion Find index key und funktionierte nur mit indizierten Feldern. Diese Einschränkung ist ab 4D v11 SQL weggefallen und der Name wurde geändert.
Sie möchten in einer Audio CD Datenbank während der Dateneingabe prüfen, ob der Name eines Sängers bereits in der Datenbank vorhanden ist. Da derselbe Name öfters vorkommen kann, wollen Sie das Feld [Sänger]Name nicht einmalig machen. So schreiben Sie im Eingabeformular in der Objektmethode für das Feld [Sänger]Name folgenden Code:
If(FORM Event=On Data Change)
$RecNum:=Find in field([Sänger]Name;[Sänger]Name)
If($RecNum #-1) ` Wurde dieser Name bereits eingegeben
CONFIRM("Es gibt bereits einen Sänger mit demselben Namen. Wollen Sie den Datensatz sehen?";"Ja";"Nein")
If(OK=1)
GOTO RECORD([Sänger];$RecNum)
End if
End if
End if
Mit diesem Beispiel können Sie prüfen, ob ein Wert vorhanden ist:
C_LONGINT($id;$1)
$id:=$1
If(Find in field([MyTable]MyID;$id)>=0)
$0:=True
Else
$0:=False
End if
Die Symbole >= decken alle Fälle ab. Die Funktion gibt eine Datensatznummer zurück und der erste Datensatz hat die Nummer 0.
Produkt: 4D
Thema: Suchen
Nummer:
653
Geändert: 4D v11 SQL
Trouver clef index
4D Programmiersprache ( 4D v20 R7)