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.

Der Artikel Nr. 1000 wurde gefunden. Beschreibung: Tourenrad Preis: 4.000,00

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.

Artikel Nr. 1000. Lagerbestand ist: 0

In der zweiten Benachrichtigung wurde das Feld „Lagerbestand“ berechnet und der Wert wird angezeigt.

Artikel Nr. 1000. Lagerbestand ist: 32