4D v16.3

Find in field

Home

 
4D v16.3
Find in field

Find in field 


 

Find in field ( ZielFeld ; Wert ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
ZielFeld  Feld in Feld zum Ausführen der Suche
Wert  Feld, Variable in Zu suchender Wert
in Gefundener Wert
Funktionsergebnis  Lange Ganzzahl in 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.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Suchen
Nummer: 653

This command can be run in preemptive processes

 
GESCHICHTE 

Geändert: 4D v11 SQL

 
SCHLÜSSELWÖRTER 

Trouver clef index

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)