infra:NET Expert
 
×
10 Sonderbehandlungen
Obwohl Megas über die Sektionen in den CGWs und den Auswertungen von Inidateieinträgen in weiten Bereichen einem Problem anpassbar ist, tritt hin und wieder der Wunsch nach derart spezieller Funktionalität auf, dass eine allgemeine Implementierung sinnlos ist. Megas bietet dem Entwickler deshalb die Möglichkeit Sonderbehandlungen in megsb.cpp zu implementieren und deren Aufruf im CGW zu veranlassen. Sonderbehandlungen sind auf Applikations-, lookup- oder Feldebene möglich, die Idee dabei ist eine Art callback Mechanismus.
Es gibt für die jede Ebene spezifische Ereignisse (Tabelle folgt) und wenn eine Sonderbehandlung mit dem Schlüsselwort Special in den Sektionen MegGeneral, MegLookup oder MegField eingetragen ist, so ruft Megas die Sonderbehandlungsroutine zur jeweiligen Ebene auf. Ist ein Ereignis für die Sonderbehandlung nicht relevant, so kehrt der Aufruf sofort zurück und alles geht normal weiter. Die Aufrufe der Sonderbehandlungen erfolgen in megcallb.cpp und megdbs.cpp mit Hilfe der Funktion MegSbActivate().
Folgende Ereignisse führen zum Aufruf einer Sonderbehandlung auf Applikationsebene:
Ereignis
Beschreibung
SBP_START
Beim Start der Applikation
SBP_CLOSE
Beim Beenden der Applikation
SBP_BEFORE_INSERT
Vor dem Erfassen eines neuen Items
SBP_AFTER_INSERT
Nach dem Erfassen eines neuen Items
SBP_AFTER_PREPINSERT
Nach der Vorbereitung zum Erfassen eines neuen Items
SBP_BEFORE_UPDATE
Vor dem Aktualisieren eines Items
SBP_AFTER_UPDATE
Nach dem Aktualisieren eines Items
SBP_BEFORE_DELETE
Vor dem Löschen eines Items
SBP_AFTER_DELETE
Nach dem Löschen eines Items
SBP_BEFORE_SELECT
Vor dem Zugriff auf ein Item
SBP_AFTER_SELECT
Nach dem Zugriff auf ein Item
SBP_BEFORE_FETCH_NEXT
Vor dem Zugriff auf das nächste Item
SBP_BEFORE_FETCH_PREV
Vor dem Zugriff auf das vorhergehende Item
SBP_MODE_SWITCHED
Nach einem Moduswechsel
SBP_CREATE_FRAME
Beim Create des Grund- oder eines Folgebildes
SBP_SHOW_FRAME
Beim ShowEvent des Grund- oder eines Folgebildes
SBP_BEFORE_DBVIEW
Vor dem Aufruf der Auskunft
SBP_AFTER_DBVIEW
Nach dem Aufruf der Auskunft
SBP_DBVIEW_RTCHECK
Satzart bezogener Feldcheck vor der Übernahme eines Feldes aus dem Auskunftssatz
SBP_DEFAULTRECORD
Nach dem Belegen des Vorbelegungsbereiches des roottables
SBP_DEFAULTRECORD_COPY
Nach dem Belegen des Vorbelegungsbereiches des roottables mit dem aktuellen Buffer
Folgende Ereignisse führen zum Aufruf einer Sonderbehandlung auf Lookupebene:
Ereignis
Beschreibung
SBB_BEFORE_INSERT
Vor dem Erfassen eines neuen Satzes
SBB_AFTER_INSERT
Nach dem Erfassen eines neuen Satzes
SBB_AFTER_PREPINSERT
Nach der Vorbereitung zum Erfassen eines neuen Satzes
SBB_BEFORE_UPDATE
Vor dem Aktualisieren eines Satzes
SBB_AFTER_UPDATE
Nach dem Aktualisieren eines Satzes
SBB_BEFORE_DELETE
Vor dem Löschen eines Satzes
SBB_AFTER_DELETE
Nach dem Löschen eines Satzes
SBB_BEFORE_SELECT
Vor dem Zugriff auf einen Satz
SBB_AFTER_SELECT
Nach dem Zugriff auf einen Satz
SBB_DEFAULTRECORD
Nach dem Belegen des Vorbelegungsbereiches d. lookuptables
SBB_DEFAULTRECORD_COPY
Nach dem Belegen des Vorbelegungsbereiches des lookuptables mit dem aktuellen Buffer
SBB_LOW_KEYFIELDS
Im Erfassen beim Testen des Schlüssels auf nicht versorgte Felder
Auf Feldebene gibt es zwei Ereignisse
Ereignis
Beschreibung
SBF_CREATE_CHECK
Im Erfassen nach Eingabe eines Feldes
SBF_MODIFY_CHECK
Im Ändern nach Eingabe eines Feldes