Ok := Record.FIND([Which]);
FIND
Die Funktion FIND findet einen Datensatz einer Tabelle anhand des Primärschlüssels. Die Suche kann durch die Parameter genau angepasst werden.
Parameter
Record:
Record beschreibt die Tabelle, in welcher der Datensatz gesucht werden soll.
Which:
Hiermit wird festgelegt wie die Tabelle durchsucht werden soll.
Es können folgende Parameter zum Suchen verwendet werden:
- = (ist der Standard und findet den Datensatz anhand der Schlüsselwerte)
- > (sucht einen Datensatz der größer als der Schlüsselwert ist)
- < (sucht einen Datensatz der kleiner als der Schlüsselwert ist)
- + (sucht den letzten Datensatz in der Tabelle und kann nur alleine verwendet werden)
- - (sucht den ersten Datensatz in der Tabelle und kann nur alleine verwendet werden)
Rückgabewert
Die Funktion FIND gibt als Rückgabewert TRUE zurück, wenn der Datensatz gefunden wurde. Wurde dieser nicht gefunden, wird FALSE zurückgegeben.
Es wird jeweils immer zuerst der Datensatz angezeigt, der nach den vorgegebenen Filterkriterien festgelegt wurde.
Wenn im gesuchten Datensatz FlowField-Felder vorkommen, müssen diese vor der Filterung mittels der CALCFIELD Funktion berechnet werden. Ansonsten sind diese Felder auf 0 gesetzt, also leer.
Beispiel 1
Zunächst werden die folgenden neuen Variablen hinterlegt.
Name | Datentyp | Subtyp |
---|---|---|
Item | Record | Item |
Ebenfalls werden folgende Text Konstanten hinterlegt.
Name | ConstValue |
---|---|
ItemFoundMsg | Der Artikel Nr. %1 wurde gefunden.\Beschreibung: %2 Preis: %3 |
ItemNotFoundMsg | Der gesuchte Artikel wurde nicht gefunden. |
Anschließend wird folgender C/AL Code eingefügt.
Item.SETRANGE("No.",'1000'); IF Item.FIND('-') THEN MESSAGE( ItemFoundMsg, Item."No.", Item.DescriptionItem."Unit Price") ELSE MESSAGE(ItemNotFoundMsg);
Sobald der Code ausgeführt wird, erscheint das folgende Ergebnis.
Beispiel 2
Zunächst werden die folgenden neuen Variablen hinterlegt.
Name | Datentyp | Subtyp |
---|---|---|
Item | Record | Item |
Ebenfalls werden folgende Text Konstanten hinterlegt.
Name | ConstValue |
---|---|
InventoryMsg | Artikel Nr. %1.\Lagerbestand ist: %2 |
Anschließend wird folgender C/AL Code eingefügt.
IF Item.FIND('-') THEN MESSAGE(InventoryMsg,Item."No.",Item.Inventory); IF Item.FIND('-') THEN BEGIN Item.CALCFIELDS(Inventory); MESSAGE(InventoryMsg,Item."No.",Item.Inventory); END;
Sobald der Code ausgeführt wird, erscheint das folgende Ergebnis.
In der ersten Benachrichtigung wurde das Feld „Lagerbestand“ nicht berechnet, weshalb es auf 0 gesetzt ist.
In der zweiten Benachrichtigung wurde das Feld „Lagerbestand“ berechnet und der Wert wird angezeigt.