verwalten von optionen und einstellungen in vfp-anwendungen
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 PresentationTRANSCRIPT
© 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
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 ?
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.
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:
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!)
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")
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,…)
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
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
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
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%"
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%\""
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.
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.
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.
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
© 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