Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

VBA-Schulung 2003-03-27/28Ereignisse2 Behandlung von Ereignissen (Events)

Ähnliche Präsentationen


Präsentation zum Thema: "VBA-Schulung 2003-03-27/28Ereignisse2 Behandlung von Ereignissen (Events)"—  Präsentation transkript:

1

2 VBA-Schulung 2003-03-27/28Ereignisse2 Behandlung von Ereignissen (Events)

3 VBA-Schulung 2003-03-27/28Ereignisse3 Der Rechnungs-Assistent soll automatisch beim Erfassen der Kundennummer erscheinen  Auswertung des Speicher-Events in der Tabelle Kundennummern

4 VBA-Schulung 2003-03-27/28Ereignisse4 Einbindung der Tabelle Kundennummern in die Ereignisbehandlung In CTables.InitTableEvents ' Tabelle Kundennummern der Auflistung hinzufügen AddTableEvents GetTable(dbtblKundennummern)

5 VBA-Schulung 2003-03-27/28Ereignisse5 Erweiterung der Ereignisbehandlung um die Reaktion auf das Speichern der Kundennummern In CTableEvents.mTbl_Changed den Abschnitt If (ChangedAspect And ORGDB_TC_CONTENT) = ORGDB_TC_CONTENT Then ' Wird ausgelöst, nachdem ein Datensatz gespeichert wurde...

6 VBA-Schulung 2003-03-27/28Ereignisse6... folgendermassen erweitern... ' Falls eine Kundennummer gespeichert wurde,... ElseIf mTbl.Name = gTables.GetTable(dbtblKundennummern).Name Then '... dann Rechnungs-Assistenten aufrufen Invoicing.ShowInvoiceWizard End If

7 VBA-Schulung 2003-03-27/28Ereignisse7 Wir testen...

8 VBA-Schulung 2003-03-27/28Ereignisse8 Unglaublich!

9 VBA-Schulung 2003-03-27/28Ereignisse9 Leider noch ein Fehler

10 VBA-Schulung 2003-03-27/28Ereignisse10 Ereignisse Problem: Der Rechnungs-Assistent wird nach dem manuellen Aufruf aus dem Menü erneut durch das Speicher- Ereignis in den Kundennummern aufgerufen Rechnungs-Assistent  Neue Position speichern  Aktualisierung des Kundenumsatzes  Kundennummerdatensatz gespeichert  Neuer Rechnungs-Assistent erscheint (!)

11 VBA-Schulung 2003-03-27/28Ereignisse11 Ereignisse Lösung: Public Sub ShowInvoiceWizard() Dim frmWizard As New FInvoiceWizard Static bRunning As Boolean If bRunning Then Exit Sub bRunning = True With frmWizard... End With bRunning = False End Sub

12 VBA-Schulung 2003-03-27/28Ereignisse12 Ereignisse Funktionsweise im Detail: Überwachung der Ereignisse in VBA geschieht über eine modulweite Deklaration mit WithEvents: Private WithEvents mTbl As OrgDbServer31.Table Private WithEvents mDb As OrgDbServer31.Database Private WithEvents mDataApp As OrgData31.Application Der orgDbServer verfügt über Datenbank- und Tabellenereignisse (Einzusehen im Objekt-Katalog - F2) orgAnice Data kann Timer-Ereignisse abfeuern Über orgAnice Data-Ereignisse können Menüpunkte überlagert oder deaktiviert werden

13 VBA-Schulung 2003-03-27/28Ereignisse13 Ereignisse Das „wichtigste“ Ereignis ist das Changed-Ereignis des Table-Objects Im Parameter ChangedAspect steht was sich geändert hat Mehrere Änderungszustände können gleichzeitig eingetreten sein.

14 VBA-Schulung 2003-03-27/28Ereignisse14 Ereignisse OfficePi-Makros: In den OfficePi-Makros werden Tabellen- ereignisse in mehreren Tabellen überwacht. Die Überwachung geschieht in der Klasse CTableEvents. Klasse CTables instanziiert mehrere Instanzen der Klasse CTableEvents Im Modul GlobalDefs wird eine globale Instanz der Klasse CTables deklariert (gTables) In GlobalDefs.InitGlobalObjects wird gTables instanziiert GlobalDefs CTables CTableEvents

15 VBA-Schulung 2003-03-27/28Ereignisse15 Haben Sie Fragen?

16 VBA-Schulung 2003-03-27/28Ereignisse16 Vielen Dank für Ihre Aufmerksamkeit


Herunterladen ppt "VBA-Schulung 2003-03-27/28Ereignisse2 Behandlung von Ereignissen (Events)"

Ähnliche Präsentationen


Google-Anzeigen