Domino 9 und frühere Versionen > ND8: Entwicklung

Exiting -> Agent ausführen

<< < (3/5) > >>

koehlerbv:
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:

--- Code: ---Sub Exiting (Source As Field)

Const g_szCurrentField = <"FELDNAME">

Dim ws As New NotesUIWorkspace

g_szCurrentField = <"FELDNAME">
Call ws.CurrentDocument.Refresh

End Sub
--- Ende Code ---

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

Hedwig14:
bislang arbeite ich mit den "Notes - Exken" ! Gegen eine Cambobox spricht aber nichts ....
Das kann ich noch umstellen !

Jens Winkelmann:
Statt dem Exiting Event würde ich das onChange Event verwenden.
Dann wird der Code nur ausgeführt, wenn man tatsächlich was geändert hat.

ata:

--- Zitat ---Statt dem Exiting Event würde ich das onChange Event verwenden.
--- Ende Zitat ---

... leider nicht stabil über alle Versionen - der Weg von Bernhard ist der Beste - den verwende ich im übrigen auch in dieser Art - es im Postrecalc zu machen, dann hat man es auch beim Speichern im Frontend gematcht...

Toni

Glombi:
Das Exiting Event halte ich nicht unbedingt für geeignet, denn es wird nur ausgeführt, wenn der User den Cursor woanders im Focus des Dokuments hinsetzt. Wenn der User aber bspw. <Esc> klickt oder in der evtl. vorhandenen Aktionsleiste Speichern & Schließen (es soll ja einige geben, die sowas machen), dann wird das Exiting Event nicht ausgeführt.

Das möchte ich zu Bedenken geben.

Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln