Verwalten von Optionen und Einstellungen in VFP-Anwendungen

17
© 2004 INDISoftware GmbH, Hannover Verwalten von Optionen und Verwalten von Optionen und Einstellungen in VFP- Einstellungen in VFP- Anwendungen Anwendungen CeBIT-Regionaltreffen 19.03.2004 Andreas Flohr/Torsten Weggen INDISoftware GmbH http://www.indisoftware.de Optionen/ Einstellungen

description

Verwalten von Optionen und Einstellungen in VFP-Anwendungen. CeBIT-Regionaltreffen 19.03.2004. Optionen/Einstellungen. Andreas Flohr/Torsten Weggen INDISoftware GmbH http://www.indisoftware.de. Einleitung. Die Einstellungen einer Anwendung:. - PowerPoint PPT Presentation

Transcript of Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Page 1: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

© 2004 INDISoftware GmbH, Hannover

Verwalten von Optionen und Verwalten von Optionen und Einstellungen in VFP-Einstellungen in VFP-

AnwendungenAnwendungen

Verwalten von Optionen und Verwalten von Optionen und Einstellungen in VFP-Einstellungen in VFP-

AnwendungenAnwendungen

CeBIT-Regionaltreffen 19.03.2004

Andreas Flohr/Torsten Weggen

INDISoftware GmbH

http://www.indisoftware.de

Optionen/Einstellungen

Page 2: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Die Einstellungen einer Anwendung:Die Einstellungen einer Anwendung:

Einleitung

In jeder Anwendung benötigen Sie Informationen, mit denen Sie Ihre Anwendung steuern. Diese Informationen werden normalerweise • in der Registry, oder• in einer INI-Datei, oder • in einer Datenbanktabelle oder• ... abgelegt.

Dabei gibt es die unterschiedlichsten Möglichkeiten, mit welchen Strukturen diese Informationen abgelegt werden.

Wäre es nicht sinnvoll, alle Zugriffe auf außerhalb der Anwendung abgelegte Optionen und Einstellungen über eine zentrale Schnittstelle anzusprechen, unabhängig davon, ob sich diese in einer INI-Datei, der Registry oder in einer Datenbanktabelle befinden ?

Page 3: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Die Aufgabenstellung:Die Aufgabenstellung:

Einleitung

1. Erstellen einer zentralen Schnittstelle, die sich transparent1. Erstellen einer zentralen Schnittstelle, die sich transparent gegenüber der Anwendung verhält, egal wie die Einstellungen gegenüber der Anwendung verhält, egal wie die Einstellungen gelesen oder geschrieben werden. gelesen oder geschrieben werden.

2. Es muss möglich sein, Einstellungen zentral für alle Anwender2. Es muss möglich sein, Einstellungen zentral für alle Anwender oder userspezifisch pro Anwender abzulegen. oder userspezifisch pro Anwender abzulegen.

3. Die Schnittstelle muss sowohl in einer Dialoganwendung als3. Die Schnittstelle muss sowohl in einer Dialoganwendung als auch in einer nicht-visuellen Anwendung verfügbar sein. auch in einer nicht-visuellen Anwendung verfügbar sein.

4. Es sollte einen Standarddialog geben, der nur für die individuell4. Es sollte einen Standarddialog geben, der nur für die individuell erforderlichen Einstellungen einer Anwendung angepasst erforderlichen Einstellungen einer Anwendung angepasst werden muss. werden muss.

Page 4: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

• Erstellung einer Klassenbibliothek mit den Klassen für das spezifische Lesen und Schreiben von Einstellungen aus einer INI-Datei, der Registry oder einer Datenbanktabelle.

• Erstellung einer Klassenbibliothek mit den Klassen, die sich gegenüber der Anwendung transparent verhalten, unabhängig von der verwendeten Ablageart und Struktur.

• Erstellung einer Klassenbibliothek mit den visuellen Klassen, die für den Standarddialog genutzt werden.

Einleitung

Das Konzept:Das Konzept:

Page 5: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Die Klassenbibliotheken:Die Klassenbibliotheken:

Das Ergebnis

_cmreg.vcx Enthält die Hilfsklassen, die von den Klassen der Klassenbibliothek _cmOption.vcx benutzt werden und das individuelle Lesen und Schreiben der Optionen durchführen.

_cmOption.vcx Enthält die Klassen zum Lesen und Schreiben von Optionen aus Registry, INI-Datei und Tabelle

_cmOptionV.vcx Enthält die visuellen Klassen für die Interaktion mit dem Anwender zum Lesen und Schreiben von Optionen. (VFP 8!)

Page 6: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Das Ergebnis

OptionHandler(cmOption)

Parameter bei INITentscheidet über

instanzierte oCmd-Klasse

Registry(option_reg)

INI-Datei(option_ini)

Tabelle(option_tab)

XML-File(option_xml)

weitere(option_xyz)

INIT

Hilfsklasse(cmreg)

oCmd.

Hilfsklasse(cmini)

Hilfsklasse(cmxml)

Optionhandler. oXYZ

INIT

INIT

INIT

Die Systemarchitektur:Die Systemarchitektur:

loOption = CREATEOBJECT("OptionHandler“,“INI“,"MeineApp.ini")

Page 7: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Das Ansprechen der Optionen-KlasseDas Ansprechen der Optionen-Klasse

Optionenhandler

OptionHandler.DoCmd(„readOption“,tu1...)

.oCmd.readoption(tu1…)DoCmd .oIni.readprivregstring(tu1...

lnAnzahlRechnungen = loOption.DoCmd("readOption","AnzRechnung")*-- loOption.doCmd:DO CASE

CASE tcCmd = "ReadOption"luRet = THIS.oCmd.ReadOption(tu1…)

…ENDCASE*-- In oCmd.ReadOption (oCmd ist Instanz von option_ini)luRet = THIS.oINI.ReadPrivateProfileString(tu1,…)

Page 8: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Methoden der Optionenklasse

Methoden zum Lesen des festen "Optionen"-Schlüssels (-Section,Node)

Readoption Lesen einer Option

Writeoption Schreiben einer Option

Deloption Löschen einer Option

Checkoption Überprüfen auf Vorhandensein einer Option

Enumoptions Erzeugen eines Arrays mit allen Optionen + Ihren Werten

Page 9: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Methoden der Optionenklasse

Methoden zum Lesen eines variablen („User“)-Schlüssels (-Section,Node)

ReadUseroption Lesen einer Option

WriteUseroption Schreiben einer Option

DelUseroption Löschen einer Option

CheckUseroption Überprüfen auf Vorhandensein einer Option

EnumUseroptions Erzeugen eines Arrays mit allen Optionen + Ihren Werten

Page 10: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Methoden der Optionenklasse

Methoden zum Verwalten der variablen ("User-") Schlüssel

NewUser Erzeugt einen neuen Schlüssel (Section, Node)

DelUser Löscht einen Schlüssel (Section, Node)

CheckUser Überprüfen auf Vorhandensein eines Schlüssels (Section, Node)

EnumUsers Erzeugen eines Arrays mit allen Schlüsseln

Page 11: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Darstellung in INI-Datei

Die Ablage

[Pfade]Daten=C:\MeineApp\TabellenReports= C:\MeineApp\Reports

[URL]Update=http://www.domain.de/Download/Patches

[USER_Meier]ForeColor=RGB(255,0,0)BackColor= RGB(0,0,0)

[USER_Meier\Querys]Query1=SELECT * FROM Adressen WHERE Name LIKE 'B%"

Page 12: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Darstellung in der Registry

Die Ablage

[HKEY_LOCAL_MACHINE\SOFTWARE\INDISoftware\ClassMaxx][HKEY_LOCAL_MACHINE\SOFTWARE\INDISoftware\ClassMaxx\1.0][HKEY_LOCAL_MACHINE\SOFTWARE\INDISoftware\ClassMaxx\1.0\Optionen][HKEY_LOCAL_MACHINE\SOFTWARE\INDISoftware\ClassMaxx\1.0\Optionen\Pfade]"Daten"="C:\\MeineApp\\Tabellen""Reports"="C:\\MeineApp\\Reports„

[HKEY_LOCAL_MACHINE\SOFTWARE\INDISoftware\ClassMaxx\1.0\Optionen\Url]"Update"=http://www.domain.de/Download/Patches

[HKEY_LOCAL_MACHINE\SOFTWARE\INDISoftware\ClassMaxx\1.0\Meier]"ForeColor"="RGB(0,0,0)""BackColor"="RGB(255,0,0)“

[HKEY_LOCAL_MACHINE\SOFTWARE\INDISoftware\ClassMaxx\1.0\Meier\Querys]"Query1"="SELECT * FROM Adressen WHERE Name LIKE 'B%\""

Page 13: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Die visuellen Klassen

Die Klassenbibliothek _cmOptionV.vcx:

cmOptionPageDef Diese Klasse ist die Basisklasse für Ihre eigenen Pageklassen, auf denen Sie Einstellungen für Ihre Anwendung zur Verfügung stellen.

cmOptionPgfDef Diese Klasse basiert auf einer Pageframe-Klasse Sie enthält eine Page0-Klasse sowie den Optionhandler. Weiterhin beinhaltet Sie die Funktionalitäten zum Erzeugen und Füllen der einzelnen Userdefined-Pages.

FrmOptionDef Bei dieser Klasse handelt es sich um ein fertiges Formular mit einer Treeview-Klasse und einem Pageframe, welches die Basis für die Einstellungsmaske darstellt.

Page 14: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Die visuellen Klassen

Was müssen Sie vorbereiten (Page-Klassen)?

• Erstellen Sie Ihr eigenes Formular, basierend auf der Klasse frmOptionDef.

• Erstellen Sie Ihre eigenen Page-Klassen, basierend auf der Klasse cmOptionPageDef in Ihrer eigenen Klassenbibliothek und legen Sie dort Ihre Controls an.

• Füllen Sie die Eigenschaft Caption der Page. Dieser Name wird später als Nodename innerhalb des Treeviews sowie als Titel der Seite verwendet. Wenn Sie einen untergeordneten Node erzeugen wollen, geben Sie in die Eigenschaft Caption den Namen des untergeordneten Nodes sowie einen Backslash und dann den Namen dieser Page ein (z.B. Mail\FTP-Einstellungen).

• In die Eigenschaft cPicture können Sie dann noch eine Bilddatei eintragen, welche vor dem jeweiligen Node für diese Seite angezeigt werden soll.

Page 15: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Die visuellen Klassen

Was müssen Sie vorbereiten (Page-Klassen)?

• Füllen Sie die jeweilige Methode FillArrayOptions() ihrer Page-Klassen, die standardmäßig leer sind. Das Array aOptions[] muss für jedes Textbox und Checkbox Control auf der Seite folgende Spalten enthalten:

[n,1] der Name der Controls [n,2] der Name, unter dem die Option gespeichert wird[n,3] den Defaultwert.

• Evtl. weitere vohandene Steuerelemente wie Comboboxen oder Commandbuttons werden nicht im Array eingetragen, Da sie eine andere Behandlung benötigen. Das Füllen mit Daten und die Verarbeitung innerhalb der Seite können Sie in den Methoden GetValuesExt(), ProcessExt(), ReadExt() und ShowValuesExt() durchführen.

Page 16: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

Optionen/Optionen/EinstellungenEinstellungen

© 2004 INDISoftware GmbH, Hannover

Die visuellen Klassen

Was müssen Sie vorbereiten (Pageframe-Klasse)?

• Legen sie mit der Einstellung in der Eigenschaft nReadPropertyFrom der Klasse cmOptionPgfDef in Ihrem erstellten Formular fest, wo von die Einstellungen gelesen werden sollen.

• Füllen Sie jetzt die Methode FillOptionsPages() der Klasse cmOptionPgfDef in Ihrem erstellten Formular. Das Array aOptionPages[] muss für jede von Ihnen erstellte Page-Klasse folgende Spalten enthalten:

[n,1] den Klassennamen der zu instanzierenden Page [n,2] der Schlüssel, unter dem die Einstellungen abgespeichert wird

Page 17: Verwalten von Optionen und Einstellungen in VFP-Anwendungen

© 2004 INDISoftware GmbH, Hannover

Verwalten von Optionen und Verwalten von Optionen und Einstellungen in VFP-Einstellungen in VFP-

AnwendungenAnwendungen

Verwalten von Optionen und Verwalten von Optionen und Einstellungen in VFP-Einstellungen in VFP-

AnwendungenAnwendungen

Optionen/Einstellungen

Andreas Flohr/Torsten Weggen

INDISoftware GmbH

http://www.indisoftware.de

CeBIT-Regionaltreffen 19.03.2004