VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

26

Transcript of VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Page 1: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.
Page 2: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

2VBA-Schulung 2003-03-27/28

Makros in der Standard-Datenbank

Page 3: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

3VBA-Schulung 2003-03-27/28

Auto-MakrosAuto-Makros werden in bestimmten Fällen automatisch von orgData aufgerufen (es sind keine Events)

AutoOpen Beim Starten von orgDataAutoClose Beim Schliessen von orgDataCloseRequest „Kurz“ vor dem Schliessen von orgDataModeChanged beim Wechsels vom Benutzer- in den Konfigurationsmodus und umgekehrt, auch beim Starten der Datenbank

Auto-Makros müssen sich im Modul Macros befinden

Page 4: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

4VBA-Schulung 2003-03-27/28

Modul MacrosNur Prozeduren aus den Modulen Macros und UserMacros können

mit Schaltflächen verknüpft oderim Menü Aktionen angezeigt werden.

Die zu verknüpfende Prozedur muss als öffentlich (Public) deklariert sein.Public Sub ShowAlarms()

Eigene Erweiterungen sollten im Modul UserMacros untergebracht werden

Page 5: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

5VBA-Schulung 2003-03-27/28

ButtonMacrosEin „Zwischenmodul“ Hinzugefügt, um das Modul Macros zu „entlasten“

Im Modul Macros hauptsächlich nur Aufrufe der entsprechenden Prozeduren aus ButtonMacrosMöglichkeit der Parametrisierung, z.B. :

ButtonMacros.DialNumber "Telefon1()"

Page 6: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

6VBA-Schulung 2003-03-27/28

ModuleWeitere Module:

AdminTools: Administrator-ToolsGlobalDefs: Deklarationen von globalen Objektvariablen und KonstantenIconTools: Tools für Icons und SchaltflächenImageListTools: Tools für AbbildungslistenInvoicing: Aufrufmodul für FakturierungsfunktionenMarkTools: Tools für MarkierungenQuicksort: SortieralgorithmusRegistry: Funktionen für den Zugriff auf die RegistryTools: Allgemeine, von mehreren Modulen/Klassen benutzte ToolsWinAPI: Funktionen für den Zugriff auf die windows-API (Application Programming Interface)

Page 7: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

7VBA-Schulung 2003-03-27/28

CDatabaseSupport

CDatabaseSupport: Hilfsklasse mit mehreren allgemeinen unterstützenden Prozeduren, u.a. für das Füllen von Comboboxen mit allen ...

Feldern einer Tabelle: LoadFieldsComboboxIndezes einer Tabelle: LoadIndexesComboboxTabellen: LoadTablesComboboxWerten einer persistenten (Feld-)Variable: LoadPersVarsComboboxDatenbank-Benutzern: LoadUsersComboboxBenutzer-Markierungen: LoadUserMarksComboboxSummierungsausdrücken: LoadSumExpressionsCombobox

Page 8: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

8VBA-Schulung 2003-03-27/28

CDatabaseSupport

Beispiel für LoadXXXComboBox:Neues Formular erstellen FDatabaseSupportExample:

cboTables

cboFields

cboIndexes

cboUsers

cboCreditCard

cmdClose

Page 9: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

9VBA-Schulung 2003-03-27/28

CDatabaseSupport

Private Sub UserForm_Initialize()

InitGlobalObjects

With gobjDatabaseSupport

.LoadTablesCombobox cboTables

.LoadUsersCombobox cboUsers

.LoadPersVarsCombobox Database.Parser.PersistVars("lt_Kreditkarte"), cboCreditCard

End With

End Sub

Page 10: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

10VBA-Schulung 2003-03-27/28

CDatabaseSupport

Private Sub cboTables_Click()

With gobjDatabaseSupport

.LoadFieldsCombobox Database.Tables(cboTables.Value), cboFields

.LoadIndexesCombobox Database.Tables(cboTables.Value), cboIndexes

End With

End Sub

Private Sub cmdClose_Click()

Me.Hide

End Sub

Page 11: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

11VBA-Schulung 2003-03-27/28

CDatabaseSupport

LoadXXXComboBox: Als Parameter kann anstatt einer ComboBox auch eine ListBox übergeben werden

Page 12: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

12VBA-Schulung 2003-03-27/28

CDatabaseSupport

GetItem(pTable As OrgDbServer31.Table)

Liefert eine den aktuellen Datensatz identifizierende Zeichenkette, z. B. den Namen für Adressen oder Betreff für Dokumente.Der auszuwertende Ausdruck sollte sich für jede Tabelle in der Tabelleneigenschaft "ItemExpression" befinden.

Page 13: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

13VBA-Schulung 2003-03-27/28

CDatabaseSupport

GetItemName(pTable As OrgDbServer31.Table)

Liefert eine Bezeichnung für Datensätze der übergebenen Tabelle, z. B. "Adresse" für die Tabelle "Adressen" Die Bezeichnung sollte sich für jede Tabelle in der Tabelleneigenschaft "ItemName" befinden.

Page 14: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

14VBA-Schulung 2003-03-27/28

CDatabaseSupport

GetItem und GetItemName testen

txtItemName

txtItem

Page 15: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

15VBA-Schulung 2003-03-27/28

CDatabaseSupportPrivate Sub cboTables_Click()

Dim tbl As OrgDbServer31.Table

Set tbl = Database.Tables(cboTables.Value)

With gobjDatabaseSupport

.LoadFieldsCombobox tbl, cboFields

.LoadIndexesCombobox tbl, cboIndexes

txtItem.Text = .GetItem(tbl)

txtItemName.Text = .GetItemName(tbl)

End With

End Sub

Page 16: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

16VBA-Schulung 2003-03-27/28

CConfigCConfig: Hilfsklasse mit Prozeduren für das Lesen und Schreiben von:

Benutzer-,Tabellen- oderDatenbank-

Eigenschaften

Page 17: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

17VBA-Schulung 2003-03-27/28

CConfigRead- / WritePrivateSetting

Private BenutzereigenschaftenNur für den aktuellen Benutzer

Read- / WriteTableSettingTabelleneigenschaftenSchreiben nur mit Datenbankverwaltungsrechten

Read- / WriteDatabaseSettingDatenbankeigenschaftenSchreiben nur mit Datenbankverwaltungsrechten

Page 18: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

18VBA-Schulung 2003-03-27/28

CConfigRead- / WriteXXXSetting werden benutzt um dauerhaft Einstellungen zu speichern.Insbesondere Read- / WritePrivateSetting werden benutzt um Benutzereinstellungen zu speichern

Beispiel: FUserSettings.SaveSettings

Page 19: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

19VBA-Schulung 2003-03-27/28

CTablePropertiesCTableProperties: Speichert die aktuellen Tabelleneinstellungen und stellt sie wieder herFolgende Einstellungen werden gespeichert:

Aktueller DatensatzSichtbare Datensätze (alle / nur markierte / nur nicht markierte)Aktueller Index

Page 20: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

20VBA-Schulung 2003-03-27/28

CTablePropertiesCTableProperties benutzen wir, wenn wir in einer Tabelle Informationen aus anderen Datensätzen benötigen, dem Benutzer jedoch seine aktuelle Ansicht nicht verändern wollen.Bsp: CInvoicing.UpdateTurnover

Page 21: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

21VBA-Schulung 2003-03-27/28

CTableProperties Dim objProp As New CTableProperties

' Aktuelle Einstelungen merken

objProp.Init gTables.GetTable(dbtblArtikel)

objProp.Save

' diverse Aktionen durchführen...

With gTables.GetTable(dbtblArtikel)

.Indexes.SetActiveIndex "ID", ORGDB_NAV_NOEVENTS

.SetShowMarked True, ORGDB_NAV_NOEVENTS

.SetShowNotMarked True, ORGDB_NAV_NOEVENTS

.GoTop ORGDB_NAV_NOEVENTS

...

End With

' Einstellungen wiederherstellen

objProp.Restore

Page 22: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

22VBA-Schulung 2003-03-27/28

CTablesCTables kapselt die Namen der Tabellen in der DatenbankDank der Auflistung CTablesDatabaseTablesEnum und Intellisense können wir schneller Quellcode schreiben:gTables.GetTable(dbtblAktivitäten)

Page 23: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

23VBA-Schulung 2003-03-27/28

CApplications, CAppX

CApplications kapselt den Aufruf von anderen Anwendungen über COMWird aufgerufen von den spezifischen Klassen

CAppOutlookCAppPhoneCAppPrintCAppWord

Diese Klassen kapseln spezifische Funktionen der jeweiligen Anwendung

Page 24: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

24VBA-Schulung 2003-03-27/28

COrgDataEventsCOrgDataEvents:

Fängt OrgData-Events abErmöglich die Überlagerung und Deaktivierung von Standard-MenüeinträgenProzedur mOrgData_Command:Ausführung von eigenen Makros, über einen Parameter kann bestimmt werden, ob das Standard-Verhalten ausgeführt werden sollProzedur mOrgData_CommandAvailable:Deaktivierung von Menüpunkten, wenn Menüpunkte nur bei Erfüllung von bestimmten Bedingungen zur Verfügung stehen sollen

Page 25: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

25VBA-Schulung 2003-03-27/28

Haben Sie

Fragen?

Page 26: VBA-Schulung 2003-03-27/28Makros in der Standard-DB2 Makros in der Standard-Datenbank.

Makros in der Standard-DB

26VBA-Schulung 2003-03-27/28

Vielen Dank für Ihre Aufmerksamkeit