LookUp()
LookUp()
Die Funktion führt eine definierte Codeblock-(Rechen-)Operation auf einem per Workarea, Index und Suchwert definierten Datensatz oder einer solchen definierten Datenmenge aus und liefert das Ergebnis zurück.
Hinweis
Die optionalen Parameter aErrRetVal und aMode sollten optimalerweise immer angegeben werden, insbesondere falls der Lookup in einem Browser, Report oder Maske verwendet wird. Wird kein aErrRetVal angegeben, wird im Fehlerfall u.U. eine endlose Schleife von Fehler-Meldungen angezeigt.
Ab Version 6.5.65.222 sollte aKey immer als Array übergeben werden. Deshalb wird beim Syntax-Test eine Warnung ausgegeben, wenn dies nicht der Fall ist.
Parameter | Beschreibung |
---|---|
aFileNo:N | Workarea |
aIndex:U | Indexname, 0 für Suche per Record-Nr. |
aKey:U | Typ Character-> Schlüssel |
aExpression:C | Codeblock Funktionsausdruck für Rückgabewert |
aErrRetVal:U | Rückgabe im Fehlerfall (Default = leer => Fehlermeldung anzeigen!) |
aMode:N | lm_Lookup = LookUp (= Default) |
aFilter:C | aMode >= 1 => Bedingung/Filter (Default = leer) |
aLocation:N | aLocation >= 0 => Standort für Filter auf Lookup-Tabelle |
aForceRefr:L | True = Gefundenen Satz immer aktualisieren (nur LM_LOOKUP) (Default = False) |
Rückgabewert
Ergebnis des aExpression Codeblocks, je nach aMode
Beispiel
// Einige Beispiele zu verschiedenen Index-Typen und LookUp-Keys
// (für ADT- und DBF-Tabellen)
// Unter LookUp-Key versteht sich der 3. Parameter (aKey)
// Einfacher (DBF oder ADT) Character-Index (ein Feld, Character):
// Index: "ARTNR"
// LookUp-Key: PadR("MEIN_ART", mBeArtNoLen)
// Zusammengesetzter (DBF oder ADT) Character-Index
// (mehrere Felder, auf Character konvertiert):
Index: "ARTNR + STRZERO(KDNR, 8)"
LookUp-Key: PadR("MEIN_ART", mBeArtNoLen) + StrZero(4711, 8)// oder
LookUp-Key: "MEIN_ART", 4711
// Einfacher (DBF oder ADT) Nicht-Character-Index (ein Feld, nicht Character):
// Index: "KDNR"
// LookUp-Key: 4711
// Zusammengesetzter (nur ADT) RAW-Index
// (mehrere Felder, per Semikolon getrennt, Typ egal):
// Index: "ARTNR; KDNR"
// LookUp-Key: "MEIN_ART", 4711 // oder
// LookUp-Key: "MEIN_ART", 4711
// Beispiel: Workarea 86, Index: "AENR;POSITNR" (beide Felder numerisch)
LookUp(waDIA065, 'AENR', {{33 }}, "not EoF()")
LookUp(waDIA065, 'AENR', 33,1, "not EoF()")
LookUp(waDIA065, 'AENR', 31,0}, {33,1, "not EoF()", 0, LM_RECCOUNT) > 0
LookUp(waDIA065, 'AENR', {{31 }, {33 }}, "not EoF()", 0, LM_RECCOUNT) > 0
// Unzulässige Aufrufe
LookUp(waDIA065, 'AENR', {31}, "not EoF()", false)
LookUp(waDIA065, 'AENR', {31,33}, "not EoF()", 0, LM_RECCOUNT) > 0