"Explicit Post": Speichern durch Scrollen in F12-Masken verhindern
Dieser Codeschnipsel dient dazu, in F12-Masken via Event "BeforePost" das Speichern durch Scrollen in einem Browser zu unterbinden. Es wird nur gespeichert, wenn Action A_SaveExecute()
ausgeführt wird.
Die Variable m_bExplicitPost
muss in in SetDefaults()
mit false
initialisiert werden.
JS
//******************************************************************************
// Tabellen öffnen, etc.
//******************************************************************************
function OpenDataBaseAndLinkToGUI()
// Üblicher Code, DM sowie Tabellen erstellen, etc.
// Hier wie gehabt am Ende der Funktion die Events zuweisen
AssignEvent(m_oTable, 'BeforePost', 'm_oTable_BeforePost'),
end,
//******************************************************************************
// Event: Verhindert Speichern beim Wechseln des Datensatzes oder beim Verlassen der Maske
// ohne vorher zu Speichern
//******************************************************************************
function m_oTable_BeforePost( Sender )
if not m_bExplicitPost then
Abort(True),
endif,
end,
//******************************************************************************
// Action: Änderung speichern
//******************************************************************************
function A_SaveExecute( Sender )
startseq
m_bExplicitPost := True,
startseq
m_oTable.CbPost(),
always
m_bExplicitPost := False,
stopseq,
onerror
GU_ShowStdErrorMessage(GetErrorText(), GetErrorObj()),
stopseq,
end,