CALCFIELD

Die Funktion berechnet ein FlowField oder Binary Large Object (BLOB) in einem Datensatz.

Parameter

FieldRef: Das Feld, das im Datensatz aktualisiert werden soll.

Hinweis

FlowFields sind virtuelle Felder, deren Werte nicht in den Tabellen gespeichert werden und zur Laufzeit berechnet werden müssen. Wird z. B. mittels der „FIND“-Funktion ein bestimmter Datensatz gesucht, ist das FlowField in dem Datensatz solange auf 0 gesetzt, bis die „CALCFIELD“-Funktion aufgerufen worden ist.

CALCFIELD kann auch zur Berechnung von „BLOB“-Objekten verwendet werden.

Beispiel

Zunächst werden drei neue Variablen hinterlegt.

Name Datentyp Subtyp
RecordReferenz RecordRef  
NichtBerechneteFeldRef FieldRef  
BerechneteFeldRef FieldRef  

Anschließend wird folgender Code hinterlegt.

RecordReferenz.OPEN(18);
IF RecordReferenz.FIND('-') THEN
  REPEAT
    NichtBerechneteFeldRef := RecordReferenz.FIELD(66);
    BerechneteFeldRef := RecordReferenz.FIELD(67);
    BerechneteFeldRef.CALCFIELD;
    MESSAGE(
      'FlowField nicht berechnet: %1\FlowField berechnet: %2',
      NichtBerechneteFeldRef,
      BerechneteFeldRef);
  UNTIL RecordReferenz.NEXT = 0

In dieser Funktion werden 2 FlowFields aus der Debitortabelle angezeigt. Dabei wird nur das zweite FlowField mittels CALCFIELD berechnet.

FlowField nicht berechnet: 0 FlowField berechnet: 2.322,61