[Gelöst] Anfängerfrage Definition FlowField

1. August 2007 14:26

Hallo liebe Community,

folgende Anforderung wollte ich umsetzen:
es sollen auf einer Form 2 neue Felder definiert werden. In dem ersten (Bearbeiter)sollen die Anwender ihren Code aus der Tabelle Salesperson/Purchaser eintragen und in das 2. Feld soll dann automatisch der dem Code zugeordnete Name eingetragen werden.

Feld 2 habe ich als FlowField definiert mit folgender CalcFormular:
Lookup(Salesperson/Purchaser.Name WHERE (Code=FIELD(Bearbeiter)))

Das Problem liegt nun in der Aktualisierung des 2.Feldes, ich muss immer die Form verlassen und wieder öffnen erst dann wird das Feld aktualisiert!

Hoffentlich war mein Problem verständlich und Danke für Eure Hilfe im vorraus!
Zuletzt geändert von FreundederNacht am 1. August 2007 16:42, insgesamt 1-mal geändert.

1. August 2007 14:37

Gehe in die Form, markiere dein Feld 2 und wechsle dort über F9 in den Quelltext. Trage nun unter OnAfterValidate
Code:
CurrReport.UPDATE

ein.

1. August 2007 14:44

Hi Natalie,

ich glaube du hast dich verschrieben. Müßte es nicht
Code:
CurrForm.UPDATE


heißen?

1. August 2007 14:47

lol, ja, stimmt natürlich!!!

2. August 2007 10:34

und das CurrForm.Update sollte im Trigger des ersten Feldes stehen, da wo der Anwender den Code auswählt und nicht im Feld 2, welches ja aktualisiert werden soll.

2. August 2007 10:39

Einfacher (und eleganter) wäre es, wenn auf Tabellenebene im OnValidate-Trigger des Feldes "Bearbeiter" ein CALCFIELDS abgesetzt würde:
Code:
Bearbeiter - OnValidate()
CALCFIELDS("Bearbeiter Name");

Vorteile:
Dies gilt automatisch für alle Forms, wo das Feld Bearbeiter dieser Tabelle vorhanden ist.
Es wird nur das Feld "Bearbeiter Name" aktualisiert und nicht die gesamte Form mit allen Controls, ... (mehr will man ja nicht bezwecken)

2. August 2007 11:03

Autsch, auf Timos Lösung war ich noch gar nicht gekommen.
(CALCFIELDS habe ich bisher nur in Reports und bei Posten verwendet.)

Und Michael hatte mit seiner vorherigen Korrektur natürlich auch recht.
Ich brauche mehr Schlaf!!!!