Andere Variante: Im Exiting steht nur ein NotesUIWorkspace.CurrentDocument.Refresh.
Das triggert das PostRecalc-Event.
Dort steht dann der Aufruf der eigentlichen Routine in einer ScriptLibrary.
Vorteil: Ein Aufruf für alle in Frage kommenden Felder.
Ausbaufähig ist das auch:
In der verwendeten ScriptLibrary wird eine globale Variable vereinbart. Im Exiting wird diese belegt:
Sub Exiting (Source As Field)
Const g_szCurrentField = <"FELDNAME">
Dim ws As New NotesUIWorkspace
g_szCurrentField = <"FELDNAME">
Call ws.CurrentDocument.Refresh
End Sub
In der durch das PostRecalc aufgerufenen Routine der ScriptLibrary wird dann via SELECT-Anweisung genau die Neuberechnung durchgeführt wird, die für das Feld <"FELDNAME"> erforderlich ist.
Was man nicht vergessen darf: Ggf. muss die Maske nach dem PostRecalc neu dargestellt werden. Ein NotesUIWorkspace.ViewRefresh und Konsorten verbietet sich, weil dadurch ja ein verschachteltes Maskenereignis generiert wird, was Notes mit heftigem Protest zur Laufzeit begleitet.
Wie man das am geschicktesten macht, lässt sich nur sagen, wenn man die Maske in tutto kennt.
HTH,
Bernhard