Session D-XRAD

Rapid Application Development
mit Visual Extend

Arturo Devigus
Devigus Engineering


Inhalt dieser Session

Diese Session zeigt auf, wie mit der Entwicklungsumgebung Visual Extend der Firma Devigus Engineering AG auf rasche Weise Anwendungen unter Visual FoxPro 3.0b oder 5.0 erstellt werden können. Die Session führt durch das Erstellen einer neuen Applikation, welche live auf der grünen Wiese erstellt wird.

Was ist Visual Extend?

Visual Extend stellt eine umfassende Entwicklungsumgebung für Software-Entwickler dar, welche mit Microsoft Visual FoxPro 3.0 und 5.0 arbeiten. Visual Extend beinhaltet visuelle Builder, welche den Software-Entwickler bei seiner täglichen Arbeit unterstützen und so die Entwicklerproduktivität drastisch steigern. Dies, ohne jegliche Einbussen bezüglich Flexibilität oder Leistungsfähigkeit in Kauf nehmen zu müssen. Visual Extend macht aus Visual FoxPro ein echtes Rapid Application Development Tool, dies sowohl für Desktop als auch Client Server Datenbank-Anwendungsentwicklungen.

Visual FoxPro ist ein exzellentes Entwicklungs-Tool. Insbesondere dank der Objektorientierung und der ActiveX-Technologie wird der Traum eines jeden Software-Entwicklers nach einfachster Wiederverwendung von eigenen oder fremden Softwaremodulen Wirklichkeit. Das Erstellen einer hochwertigen, massiv produktivitätssteigernden Entwicklungsumgebung stellt jedoch ein grösseres Unterfangen dar, welches sich heutzutage immer weniger Software-Entwickler wirklich leisten können. Selbst wenn der Entwickler seine eigene Klassenbibliothek erstellt hat, fällt bei der täglichen Arbeit immer noch mehr als genug Arbeit an.

Visual Extend für Visual FoxPro füllt exakt diese Lücke und stellt eine hochproduktive Anwendungs-Entwicklungsumgebung für Visual FoxPro Software-Entwickler dar. Dank des durchdachten, modularen Gesamtdesigns kann der Software-Entwickler jederzeit selbst entscheiden, ob er die gesamte Entwicklungsphilosophie von Visual Extend verwenden will, oder nur ausgewählte Teile daraus für die Erstellung seiner eigenen Anwendungen übernehmen will. Dank der Objektorientierung von Visual Extend kann der Entwickler Subklassen aller Visual Extend Klassen erstellen, um so die Entwicklungsumgebung noch besser seinen spezifischen Bedürfnissen anzupassen. Die mit den Buildern erstellten Formulare können jederzeit und ohne jegliche Einschränkung innerhalb Visual FoxPro weiterverarbeitet werden.

Was unterscheidet Visual Extend von anderen Entwicklungsumgebungen?

Im Gegensatz zu anderen Entwicklungsumgebungen unterscheidet sich Visual Extend zum einen dadurch, dass keine Grundfunktionalitäten wie z.B. das Data Environment oder der Projektmanager von Visual FoxPro ersetzt werden. Visual Extend erweitert vielmehr die bestehenden Komponenten und somit die gesamte Entwicklungsumgebung. Die Folgen, wichtige Komponenten, wie z.B. das Data Environment oder den Projektmanager zu ersetzen wären schwerwiegend: Keine volle Drag and Drop Funktionalität sowie eingeschränkte Source Safe Integration wären die Folgen.

Ein anderes Unterscheidungsmerkmal sind die Visual Extend eigenen Builder, welche die Entwicklerproduktivität nochmals massiv steigern. Mit Ihnen wird es möglich, wirklich rasch und kompetent Anwendungen zu erstellen für welche man manuell viel mehr Zeit benötigen würde. Einmal mit den VFX Buildern aufgesetzte Objekte können innerhalb Visual FoxPro normal weiterverarbeitet werden.

Erstellen einer Applikation mit dem VFX Application Builder

Falls Sie eine neue Applikation erstellen wollen, könnten Sie alle benötigten Dateien wie z.B. die Klassenbibliothek, das Menu, die Include Dateien, die Bitmaps usw. von Hand in die entsprechenden Verzeichnisse resp. Unterverzeichnisse Ihrer neu zu erstellenden Applikation kopieren. Die Formulare, welche auf bestimmten Form Klassen basieren und in der neuen Applikation benötigt werden, könnten Sie entweder manuell aus einer Vorlage kopieren oder neu anlegen und anschliessend Ihr neues Projekt kompilieren. Der VFX Application Builder erledigt all diese Arbeitsschritte vollautomatisch für Sie. Nach nur kurzer Zeit sind Sie im Besitze einer voll lauffähigen neuen Applikation in der Sprache Ihrer Wahl.

Vorbereitung

Schliessen Sie alle Formulare. Falls Sie mit einem Form, Grid oder einem anderen Control arbeiten, würde beim Aufstarten des VFX Builder Programmes der Builder für das aktuell angewählte Objekt erscheinen.

Der VFX Application Builder

Die verschiedenen VFX Builder sind kontextsensitiv. Je nach Situation sowie der aktuell angewählten Objekte startet automatisch der entsprechende Builder auf. Starten Sie den Builder, indem Sie eine der folgenden Möglichkeiten wählen:

Der VFX Application Builder bietet folgenden Dialog:

Geben Sie folgende Informationen ein, bevor Sie den Application Builder durch den Druckknopf Build starten.

VFX Home Directory. Geben Sie hier Ihr VFX Home Directory ein, normalerweise ...\VFX\

Project Directory. Geben Sie hier das Verzeichnis Ihres neuen Projektes ein. Falls das Verzeichnis noch nicht existiert, wird dieses automatisch angelegt

Language. Wählen Sie hier die gewünschte Sprache aus. Zur Zeit stehen folgende Sprachen zur Auswahl

Auf der Seite Author&Company können Sie Ihre Initialen, welche beim neuen Projekt verwendet werden, eingeben.

Wählen Sie die Schaltfläche Build und der VFX Application Builder erstellt Ihr neues Projekt in der entsprechenden Sprache.

Generiere

Das Generieren dauert nur wenige Sekunden und läuft ohne weitere Benutzereingaben vollautomatisch ab. Eine Abschlussmeldung zeigt Ihnen an, dass Ihre neue Applikation erfolgreich erstellt wurde.

HINWEIS: Wie bereits erwähnt, ist es in Visual FoxPro unabdingbar, das aktuelle Arbeitsverzeichnis auf das Verzeichnis der jeweiligen Applikation zu wechseln. Deshalb wechselt der Application Builder nach erfolgreichem Erstellen der Applikation automatisch in das Verzeichnis der neuen Applikation. Sie können die Einstellung des aktuellen Verzeichnisses mit dem cd getdir() Befehl, sowie dem Options Dialog einstellen.

Der einfachste Weg, mit Visual Extend von einem Projekt zu einem anderen zu wechseln besteht darin den VFX Application Manager zu verwenden. Dieser kann ebenfalls bequem durch das VFX Menu aufgerufen werden.

Nächste Schritte

Ihre neue Applikation ist bereit aufgestartet zu werden! Wechseln Sie im Project Manager auf den Code Tab und wählen Sie Ausführen!

Die generierte VFX Applikation

Nach erfolgreichem Durchlauf des Application Builders sind Sie im Besitz einer direkt lauffähigen Visual FoxPro Applikation. Diese beinhaltet bereits sämtliche Komponenten, welche anspruchsvolle Benutzer von einer seriösen Anwendung erwarten: Vom Menu, einer Standard Toolbar, Benutzerliste, System Optionen , Datenbank Tools, Systemfehler- sowie Systemsperrungs-Tabelle bis hin zum Info Dialog ist bereits alles vorhanden.

Office Compatible Benutzeroberfläche

Mit VFX erstellte Anwendungen sind bereit zur Office Compatible Zertifizierung. Es gab in letzter Zeit einige Wirren und Diskussionen über den Sinn, die Office Compatible Standards auch auf anspruchsvolle Datenbank-Anwendungssysteme anzuwenden. Der Vorteil einer einheitlichen Benutzeroberfläche scheint uns jedoch wichtiger als eine allfällige Einschränkung des Entwicklers in der Erstellung von Menus und der Verwendung von Tastaturkürzeln. Das Logo Office Compatible ist zudem auch ein ausgezeichnetes Marketing Label. Office Compatible Anwendungen lassen sich besser verkaufen.

Datei Menu

Mit einem Standard Datei/ Öffnen Dialog wird die Komplexität von Menus wesentlich reduziert. Der Benutzer öffnet Dateien immer durch einen einheitlichen Öffnen Dialog, für welchen VFX einen Layoutvorschlag unterbreitet. Selbstverständlich sind Sie frei, diesen anzupassen.

VFX Applikationen bieten, dem Office Compatible Standard folgend, im Datei Menu die vier zuletzt geöffneten Dateien an.

Auch die Datei/ Beenden Option entspricht dem Office Compatible Standard.

Bearbeiten Menu

Hier finden sich alle Daten Manipulations Funktionen, welche sich auf den aktuellen Datensatz beziehen. Je nach Status des Formulars

sind die einen oder anderen Funktionen verfügbar oder nicht.

Für weiterführende Informationen sehen Sie bitte unter dem Kapitel Das VFX Daten Manipulations Formular nach.

Ansicht Menu

Hier können Sie den Toolbar Dialog aufrufen, die Seite bei mehrseitigen Eingabemasken wechseln, sowie den Datensatz wechseln.

Für weiterführende Informationen, sehen Sie bitte unter dem Kapitel Das VFX Daten Formular nach.

System Menu

Für Informationen zu den einzelnen Optionen sehen Sie bitte in den entsprechenden Kapiteln dieses Benutzerhandbuches nach.

Fenster Menu

Falls Sie mehrere Fenster geöffnet haben, können Sie diese im Fenster Menu anwählen.

Standard Office Toolbar
VFX Applikationen haben eine Standard Toolbar, welche Sie einfach um Ihre applikationsspezifischen Ikonen erweitern können.

Neben dieser Standard Toolbar bietet Ihnen VFX an, auf einfachste Art und Weise eine formularspezifische Toolbar zu definieren. Das Ein- und Ausblenden dieser Toolbar zur Laufzeit erledigt VFX für Sie völlig automatisch. Alles was Sie zu tun brauchen, ist eine Toolbar Klasse zu definieren, sowie den Namen dieser Toolbar in der Form Property CToolbarClass einzutragen.

Bemerkung zu Office Compatible
Je nach Typ Ihrer Anwendung kann es sich aufdrängen, vom Office Compatible Standard abzuweichen. Es liegt bei Ihnen, als Entwickler, zu entscheiden, ob es sich lohnt beim Office Compatible Standard zu bleiben oder einen alternativen Aufbau zu verwenden. Das einfachste ist natürlich, beim Einsatz vom VFX beim vorgeschlagenen Office Compatible Standard zu bleiben. Es ist jedoch möglich, abweichende Konzepte zu implementieren. Hierfür sind gewisse Detailkenntnisse erforderlich und ggf. ist auch ein vollständig anderer Menuaufbau zu realisieren. VFX bietet z.B. Properties an, welche steuern, wo bestimmte Positionen im Menu beginnen: Sehen Sie unter der Applikationsklasse CFoxApp in der technischen Referenz nach.

Die Datenbank Tools

Wenn Sie den Menupunkt Datenbank aus dem System Menu anwählen, erhalten Sie folgenden Dialog:

In diesem Dialog können Sie mittels eines Mover Dialogs die Tabellen, für welche Sie entweder ein

durchführen wollen, auswählen und mit OK die Funktion aufstarten.

HINWEIS: Der hier verwendete Mover Dialog ist ebenfalls eine VFX Klasse und steht auch für Ihre eigenen Applikationen zur Verfügung. Siehe auch Kapitel Verwendung des VFX Mover Dialogs.

HINWEIS: für SDT Benutzer: Wenn Sie die SDT Features aktivieren, sehen Sie eine zusätzliche Option, bezeichnet mit “Repair”, welche sich auf die SDT Repair-Funktionalität bezieht. Falls diese “equivalent function” verfügbar ist, kann diese auch fürs Reindexieren verwendet werden.

Die Benutzerliste

In jeder mehrbenutzerfähigen Anwendung ist es unerlässlich, eine Liste der autorisierten Benutzer zu führen. Zum einen müssen die Benutzeridentifikationen mit den Passwörtern verwaltet werden, sowie die Zutrittsberechtigungsstufe mit einem zusätzlichen Charakter Feld für das Abspeichern von erweiterten Benutzer Rechten, welche sich nicht alleine durch die Verwendung einer Benutzerstufe lösen lassen. Eine andere, sehr wichtige Funktion der Benutzerliste ist das Abspeichern von benutzerspezifischen Einstellungen.

Die Datei, in welcher diese Informationen abgespeichert werden, ist die Tabelle VFXUSER.DBF/CDX. Wir haben diese Tabelle, wie auch alle übrigen VFX Tabellen, bewusst nicht in den Database Container aufgenommen, um Ihnen das Database Handling zu erleichtern.

Das Formular Benutzer Liste ist auf der VFX Klasse CDataFormPage basierend und wird automatisch durch den VFX Application Builder in das Verzeichnis Ihrer Applikation kopiert und liegt dort gebrauchsfertig vor.

Benutzer können Ihre VFX Resource Dateieinträge durch Klick auf die Schaltfläche Resource Datei Initialisieren löschen. Dies eignet sich, falls nach Tests die aktuellen Einstellungen für die Formulare nicht mehr beibehalten werden sollen, wenn eine neue Programmversion installiert wurde oder beim Aufstarten der Formulare Fehlermeldungen aus der Methode LoadPosition() erfolgen.

HINWEIS: Es ist sichergestellt, dass Benutzer mit höheren Benutzerstufen (weniger Rechte: Administrator = 1, Power User = 2, usw…) nicht die Benutzerdaten von höherberechtigten Benutzern einsehen bzw. verändern können. Es ist auch sichergestellt, dass Benutzer mit niedrigeren Rechten nicht neue Benutzer mit höheren Rechten anlegen können. Beim Verändern der eigenen Benutzerstufe erscheint eine Warnung.

Das Fehler System

In jeder Anwendung, die Sie verteilen, sollte es möglich sein, Laufzeitfehler möglichst detailliert zu protokollieren. VFX erledigt dies vollautomatisch für Sie.

Die Fehler werden in einer Log Datei protokolliert. Die Log Datei besitzt den Namen VFXLOG.DBF/CDX. und ist, wie die übrigen VFX Tabellen, als freie Tabelle implementiert. Sehen Sie auch in der Technischen Referenz nach, um weitere Informationen zu dieser Datei zu erhalten.

Das Datenformular basiert auf der VFX Klasse CDataFormPage und wird durch den VFX Application Builder gebrauchsfertig zur Verfügung gestellt.


Der Administrator kann diese Liste initialisieren. Hierzu steht die Schaltfläche Alles Löschen zur Verfügung.
HINWEIS: Für eine ausführliche technische Beschreibung sehen Sie bitte in der als Online Hilfesystem vorliegenden Technischen Referenz nach. Diese ist sowohl auf CompuServe als auch bei Ihrem Distributor erhältlich.

Die Systemsperrungen

In anspruchsvolleren Mehrbenutzerumgebungen kann eine Meldung wie “Datensatz durch anderen Benutzer gesperrt” unter Umständen nicht ausreichen. Für solche Fälle stellt VFX eine System-sperrungsdatei zur Verfügung. In dieser Datei können Sie sich abspeichern, welcher Benutzer gerade welchen oder welche Datensätze in Gebrauch hat. (Siehe die Funktionen XLock() sowie XUnlock() in der Technischen Referenz unter Funktionen). Auch bei optimistischem Record Locking kann dies durchaus Sinn machen, vor allem bei OneToMany Datenformularen.

Die Systemsperrungsdatei besitzt den Namen VFXLOCK.DBF/CDX. und ist, wie die übrigen VFX Tabellen, als freie Tabelle implementiert. Sehen Sie auch in der Technischen Referenz nach, um weitere Informationen zu dieser Datei zu erhalten.

Das Daten-Manipulationsformular basiert auf der VFX Klasse CDataFormPage und wird durch den VFX Application Builder gebrauchsfertig zur Verfügung gestellt.

Der Administrator kann diese Liste initialisieren. Hierzu steht die Schaltfläche Alles Löschen zur Verfügung.

HINWEIS: Für eine ausführliche technische Beschreibung sehen Sie bitte in der als Online Hilfesystem vorliegenden Technischen Referenz nach. Diese ist sowohl auf CompuServe als auch bei Ihrem Distributor erhältlich.

Die VFX Resource Datei

VFX Applikationen verwenden eine Resource Datei, in welcher pro Benutzer Informationen über alle Formulare, welche der Benutzer bereits einmal verwendet hat, abgespeichert sind. Hierbei werden nicht nur die Positionen des Formulars, sondern auch Layoutänderungen an Grids inklusive individueller Sortierfolgen abgespeichert.

Hier die Einstellungen, welche in der VFX Resource Datei je Benutzer abgespeichert werden.

Einstellung Beschreibung Bemerkung

Position und Grösse des Formulars Der Benutzer sieht die Formulare bei erneutem Aufstarten genau so, wie er sie zuletzt verlassen hat Individuelle Formulareinstellungen

Hinweis: Bezieht sich auch auf die Auswahllisten!

Alle vorgenommenen Layoutänderungen am Grid Der Benutzer sieht die Grids genau so wie er sie verlassen hat. Sowohl Spalten-Breite als auch Anordnung (unabhängig ob es sich hierbei um berechnete Felder handelt oder nicht) Individuelle Grid Einstellungen

Hinweis: Bezieht sich auch auf die Auswahllisten sowie die OneToMany Formulare!

Aktuelle Sortierung des Daten-Manipulationsformulars sowie der Auswahllisten Die letzte Sortierreihenfolge wird automatisch wieder hergestellt. Unabhängig davon, ob ein Indextag vorhanden ist oder nicht. VFX erstellt temporäre IDX Dateien als Indices für nicht vorhandene Schlüssel. VFX erstellt automatisch benötigte IDX Dateien im Arbeitsverzeichnis der Anwendung und löscht diese wieder beim Verlassen der Forms.

Hinweis: Bezieht sich auch auf die Auswahllisten!

Position und Status der Toolbar Falls Sie eine Toolbar an Formulare anbinden (Form Property cToolbarClass), so werden diese in demselben Status präsentiert, wie sie beim letzten Arbeiten mit diesem Form verlassen wurden.

Toolbar Unterdrückung Falls der Benutzer die formularspezifische Toolbar geschlossen hat, so wird diese bei erneutem Aufsttarten dieses Forms nicht mehr geöffnet. Um sie erneut zu aktivieren, muss der Toolbar Dialog aus dem Menu Ansicht angewählt werden und auf die entsprechende Toolbar geklickt werden.

Sie können diese Resource Datei im Dialog Benutzer Liste löschen.

HINWEIS: VFX Applikationen verwenden nicht die Visual FoxPro Resource Dateien FOXUSER.DBF/CDX, stattdessen verwenden Sie ausschliesslich die VFX Resource Datei VFXRES.DBF/CDX.

Benutzerspezifische Einstellungen

VFX erstellt für jedes Feld aus der Tabelle VFXUSER eine Public Variable mit dem Prefix gu_ und erledigt vollautomatisch das Speichern und Lesen dieser Werte.

Bsp: Falls Sie ein Feld mit dem Namen TEST in der Tabelle VFXUSER haben, wird eine Public Variable gu_test den Wert aus dem Feld Test der VFXUSER Tabelle beinhalten. Falls diese Variable verändert wird, wird beim Verlassen der Applikation dieser Wert wieder zurück in das Feld Test der Tabelle VFXUSER geschrieben.

Auf diese Weise ist es sehr einfach, benutzerspezifische Einstellungen abzuhandeln. Es reicht aus, in der Tabelle VFXUSER ein entsprechendes Feld anzulegen.

Der System Optionen Dialog

Im Gegensatz zu den benutzerspezifischen Einstellungen, werden in der Tabelle VFXSYS die installationsspezifischen Einstellungen abgespeichert.

Obiges Formular ist eine Vorlage, welche für die eigenen System-Optionen verwendet werden kann. Selbstverständlich können Sie hier auch einen Tab Dialog einbinden und einen Options Dialog im Stile von WinWord erstellen.

Der VFX Application Builder erstellt das Formular VFXSYS für Sie in einer gebrauchsfertigen Form. Dieses Formular basiert auf der Klasse CSystemDialog. Alles was Sie noch zu tun brauchen, ist die gewünschten Felder in der VFXSYS Tabelle zu definieren und die entsprechenden Controls direkt mit der jeweiligen Public Variablen gs_ (s. unten) als Control Source zu platzieren.

Systemspezifische Einstellungen

Auch hier, wie bei den benutzerspezifischen Einstellungen, welche weiter oben beschrieben wurden, wird für jedes Feld aus der Tabelle VFXSYS eine Public Variable mit dem Prefix gs_ definiert. VFX übernimmt auch hier vollautomatisch das Speichern und Wiederherstellen dieser Werte falls diese aus dem Optionsdialog heraus verändert werden.

Bsp: Falls Sie ein Feld mit dem Namen TEST in der Tabelle VFXSYS haben, wird eine Public Variable gs_test den Wert aus dem Feld TEST der VFXSYS Tabelle beinhalten. Falls diese Variable verändert wird, wird beim Verlassen des Optionsdialogs dieser Wert wieder zurück in das Feld Test der Tabelle VFXSYS geschrieben.

Auf diese Weise ist es sehr einfach, systemspezifische Einstellungen abzuspeichern und wieder herzustellen. Es genügt hierzu in der Tabelle VFXSYS die entsprechenden Felder als Variable prefix gu_fieldname hinzuzufügen Dies ist sehr einfach. Probieren Sie es !

Der Info Dialog

Der VFX Application Builder generiert einen Info Dialog, welcher auf der Klasse CAboutDialog basiert. Sie finden den Info Dialog im Menu Hilfe.

Erstellen von Datenformularen mit den VFX Buildern

Ziel

Formulare manuell zu erstellen kann relativ rasch in wahre Arbeit ausarten. Stellt man sich z.B. ein Formular mit 20 Feldern vor, so hat man bereits 40 Controls, alleine für die Dateneingabefelder: 20 Text Controls und 20 Labels. Für 20 Felder müssen Sie auch 20 Control Sources definieren. Hinzu kommen noch 20 Spalten für ein allfälliges Daten Grid. Jede der Spalten wiederum mit einer Caption und Control Source… Hier muss Abhilfe geschaffen werden! Die Lösung bieten die Visual Extend Builder an. Sie übernehmen all diese mühsame Arbeit vollautomatisch und in Windeseile. Sie werden sehen, mit der Visual FoxPro Version 5.0 ist es noch viel einfacher und ein Datenformular Builder ist stets eine grossartige Hilfe.

Resultat

Das Resultat ist ein sofort lauffähiges Datenformular. Sehen Sie bitte unter dem Kapitel Das VFX Standard Daten Formular weiter unten in diesem Handbuch nach.

Vorbereitung

Definition des Datenkatalogs

Zu aller erst müssen Sie den Datenkatalog definieren. Hier geben Sie alle Felder und Indexe zusammen mit allen Beschreibungen einmal ein.

HINWEIS: Es ist unbedingt empfehlenswert, dass Sie die Feldbeschreibungen (Captions) bereits im Datenkatalog definieren. Auf diese Weise ist sichergestellt, dass die VFX Builder diese Texte verwenden. Sie ersparen sich auf diese Weise eine Menge Tipparbeit.

Erstellen eines neuen Formulars

Falls Sie aus dem Project Manager ein neues Formular erstellen, sehen Sie, falls Sie keine speziellen Form Template Einstellungen getätigt haben, ein leeres FormSet1 sowie ein leeres Fom1. Falls Sie ein leeres Fom1 sehen, können Sie mittels Drag and Drop die Klasse CDataFormPage aus der Klassenbibliothek VFXDBOBJ in Ihr Formular ziehen.

WICHTIG: Denken Sie unbedingt daran, dass Sie das leere Form1, sowie FormSet1 unbedingt löschen. Diese werden nicht mehr benötigt und würden bei Belassen zu Problemen führen. (Sie müssen das neu generierte Formular verschieben, damit Sie das Form1, das hinter dem VFX-Form plaziert ist, sehen können. Das FormSet1ist unsichtbar aber kann vom Formular Menu aus gelöscht werden.)

Definition des Data Environment

Definieren Sie das Data Environment Ihres Formulars. Dies ist wichtig, da die VFX Builder die Informationen über zur Verfügung stehende Felder aus dem Data Environment des Formulars beziehen.

WICHTIG: Es ist eine gute Angewohnheit, die Data Environment Property InitiallySelectedAlias, sowie Order korrekt einzustellen. Dies kann Ihnen eine Reihe von Kopfzerbrechen ersparen…

Der VFX Form Builder

Aufruf des VFX Form Builders

Um den VFX Form Builder aufzurufen, positionieren Sie die Maus auf den hellen Hintergrund Ihres neuen Formulars und klicken sie die rechte Maustaste. Im erscheinenden Popup Menu wählen sie Builder. Sie können auch direkt im Property Sheet die Builder Ikone aufrufen. Es ist auf jeden Fall unabdingbar, dass Sie korrekt auf dem Formular positioniert sind.

HINWEIS: Falls Sie eine Meldung erhalten, welche Ihnen sagt, dass keine Builder für das ausgewählte Objekt zur Verfügung stehen, oder statt des VFX Builders der Standard Visual FoxPro Builder aufgerufen wird, müssen Sie die Installationsschritte von VFX nochmals überprüfen. Auch ist es wichtig, dass Sie das richtige Objekt angewählt haben. Ein häufig begangener Fehler ist derjenige, dass z.B. der PageFrame Container angewählt wurde, statt das Formular selbst. Prüfen Sie ggf.das angewählte Objekt im Property Sheet. Dort lässt es sich leicht überprüfen, welches Objekt tatsächlich angewählt ist.

Der VFX Form Builder lädt und präsentiert sich folgendermassen:

Benutzeroberfläche des VFX Form Builders

Der VFX Form Builder hat eine intuitiv zu bedienende Benutzeroberfläche:

Formname. Geben Sie hier den Namen, welchen Ihr neues Form haben soll ein. Der VFX Form Builder macht einen Vorschlag, welcher den Nomenklaturregeln von Microsoft folgt, beginnend mit frm für Form. Sie können selbstverständlich auch einen anderen Namen vergeben. Wir empfehlen Ihnen jedoch, die Nomenklaturregeln strikt einzuhalten. VFX intern haben wir uns auch daran gehalten und dies hat sich absolut bewährt.

Caption. Geben Sie den Titel für Ihr neues Formular ein. Währenddem Sie tippen, sehen Sie den Titel im Titel des aktuellen Form Builders eingeblendet. Falls Ihr Formular variable Titel verwendet, brauchen Sie sich nicht zu sehr um diesen Titel zu kümmern. Geben Sie in einem solchen Fall lediglich einen halbwegs vernünftigen Titel ein.

Edit Page. Geben Sie hier an, wieviele Eingabeseiten Ihr neues Formular haben soll. Je nach Anzahl der Felder und Controls reicht Ihnen eine Seite nicht aus. Im oben abgebildeten Beispiel sind zwei Seiten angewählt worden. (d.h. mit der Grid Seite ergibt dies insgesamt 3 Seiten). Je nachdem, wieviele Seiten Sie angewählt haben, sehen Sie eine unterschiedliche Anzahl von Tab Dialogseiten, auf welchen Sie die gewünschten Felder auswählen können.

Page Title. Hier geben Sie den Titel für die aktuell angewählte Seite ein. Um z.B. den Titel für die Seite zwei einzugeben, klicken Sie auf Seite 2 und geben den gewünschten Titel ein, usw…. Der VFX Form Builder zeigt Ihnen die eingegebenen Titel währenddem Sie diese eingeben, direkt an! Versuchen Sie’s mal, es macht Spass! Es ist eine gute Angewohnheit, den ersten Buchstaben mit \< zu beginnen, dies hebt Ihn hervor und aktiviert Ihn gleichzeitig als Kürzel.

Grid Page Title. Hier geben Sie den Titel für die Seite des Grids ein. Falls Sie keinen Grid auf der letzten Bildschirmseite sehen möchten, können Sie die Checkbox Grid Page deaktivieren.

Fields/ Selected. In dieser Liste sehen Sie alle zur Verfügung stehenden Felder. Diese Felder werden aus dem Data Environment, welches Sie während dem Form Design definiert haben, gelesen. Um Felder auszuwählen oder wieder aus der Auswahl zu entfernen, brauchen Sie lediglich mit Doppelklick darauf zu klicken.

HINWEIS: Dieser Dialog ist ein sog. Mover Dialog. Er basiert auf der Container Control Klasse CMover. Es existiert auch eine Formklasse namens CMoverDialog, welche Sie auf einfachste Weise auch in Ihren Anwendungen einsetzen können.

Control Type. Hier geben Sie an, welche Felder welche Control Types verwenden sollen. Für normale Characterfelder ist der TextBox Control meistens die richtige Wahl. Für andere Typen von Feldern stehen andere, geeignetere Control Typen zur Verfügung:

Control Type Beschreibung VFX Klassenbibliothek

CTextBox Normale Textbox VFXOBJ.VCX

CKeyField Textbox für das Editieren von Identifikationsfeldern, welche nach Anlegen des Datensatzes nicht mehr verändert werden dürfen. VFXDBOBJ.VCX

CFixField Textbox für das Editieren von Feldern, welche in einer Child Tabelle zu einer Parent Tabelle verbunden sind. Werden dort verwendet, wo ein Child Formular von einem Parent Formular aufgerufen wird und einen fixen Wert aus dem Parent Formular übergeben erhält, z.B. Aufträge zu einem Kunden. In diesem Fall würde das Kundenfeld im Formular Aufträge ein cFixField sein, denn im Falle des Aufrufes der Aufträge zu einem Kunden muss das Kundenfeld vorbelegt werden und nicht zugänglich sein. VFXDBOBJ.VCX

CPickField Eingabefeld, bei welchem die Eingabe gegenüber einer Tabelle/ Cursor validiert wird auf Verlangen und eine Auswahlliste zur Verfügung gestellt wird. Automatisches Datenlesen aus der Tabelle gegenüber welcher validiert wird. Nicht nur eine Beschreibung sondern zusätzlich auch ein beliebiger Ausdruck VFXDBOBJ.VCX

CEditBox Edit Box für das Editieren von Memo Feldern und sonstigen längeren Character Feldern. VFXOBJ.VCX

Cspinner Spinner Control for numerische Felder. VFXOBJ.VCX

CCheckBox Checkbox für logische Felder. VFXOBJ.VCX

COptionGroup Option Group. VFXOBJ.VCX

CListBox List box. VFXOBJ.VCX

CComboBox Combobox. VFXOBJ.VCX

HINWEIS: Wenn Sie die “USE SDT preferences” wählen, werden die Vorgaben von SDT automatisch übernommen, ungeachtet den Selektionen die Sie hier machen.!

Prompt. Titel für die Labels. Der VFX Form Builder nimmt automatisch die Beschreibungstexte aus dem Datenkatalog. Sie können die Titel zwar auch manuell eingeben, es ist jedoch empfohlen, so weit wie möglich direkt auf dem Datenkatalog aufzusetzen.

Input Mask. Der VFX Formbuilder übernimmt die Input Mask aus der Länge des Feldes aus dem zu Grunde liegenden Datan Source. Sie können diese Input Mask selbstverständlich auch manuell jederzeit verändern.

Read only. Falls ein Control als Read Only definiert werden soll, können Sie die entsprechende Checkbox aktivieren.

Grid Page. Normalerweise wollen Sie Ihre VFX Formulare so gestalten, dass Ihre Benutzer auf der letzten Seite über ein VFX Power Grid mit inkrementeller Suche und Sortiermöglichkeit verfügen. Falls Sie aus irgendwelchen Gründen diese letzte Seite nicht wünschen, löschen Sie diese Checkbox.

Child Form. Falls das Formular, welches Sie erstellen wollen, von einem anderen Formular aufgerufen werden soll, fungiert dieses Formular als sog. Child Formular.

HINWEIS: Bitte verwechseln Sie dies nicht mit dem weiter unter beschriebenen OneToMany Formular, wo Sie eine Parent und eine Child Tabelle auf ein und demselben Formular haben. Hier sprechen wir von folgendem Szenario: Formular1 -> ruft Formular2 auf, wobei Formular1das Parent und Formular2 das Child Form darstellt und im Formular2 dementsprechend nur diejenigen Datensätze des entsprechenden Parent Datensatztes angezeigt und bearbeitet werden.

Bsp: Falls Sie ein Formular haben, in dem Sie nur die Aufträge eines bestimmten Kunden sehen und bearbeiten möchten, werden Sie die Checkbox ChildForm anklicken. Der VFX Form Builder wird dann automatisch eine Vorlage für den Init() Code Ihres Formulars vorsehen, in welchem Sie lediglich die Anpassungen für Ihren konkreten Fall vorzunehmen brauchen.

Für weitergehende Informationen wollen Sie bitte unter dem Kapitel Fortgeschrittene Techniken mit den VFX Form Buildern weiter unten in diesem Dokument nachlesen.

HINWEIS: Auch wenn Sie ein Formular haben, welches einmal als Child Formular und ein andermal direkt aufgerufen werden kann, definieren Sie es als Child Formular. Sie brauchen in einem solchen Fall auf keinen Fall zwei verschiedene Formulare zu erstellen. Mit einem Form können Sie bestens beide Szenarien abdecken. Beispielsweise Alle Aufträge sowie Aufträge eines bestimmten Kunden.

More Functions. Falls es sich beim zu erstellenden Formular um ein Formular handelt, welches ein oder mehrere andere Formulare aufrufen kann, werden Sie diese Checkbox anklicken. Auf diese Weise generiert Ihnen der VFX Form Builder vollautomatisch einen Vorlage Code in der onMore() Methode. Dies ist die Methode, welche aufgerufen wird, wenn der Benutzer weitere Funktionen anwählt. Sie brauchen darin anschliessend lediglich die Anpassungen für Ihren konkreten Fall vorzunehmen.

Für weitergehende Informationen wollen Sie bitte unter dem Kapitel Fortgeschrittene Techniken mit den VFX Form Buildern weiter unten in diesem Dokument nachlesen.

Auto Size Textbox. Falls diese Checkbox wählen, wird der VFX Form Builder automatisch die Grösse des Controls dem zu Grunde liegenden Control anpassen. Dies spart Ihnen eine Menge Arbeit.

Button Bar. Wenn Sie diese Checkbox löschen, the VFX Form Builder will automatically set the form property lHidebuttonbar to true.

Verwenden Sie SDT Definitionen. Falls Sie SDT aktiviert haben, können Sie die SDT Definitionen für die field class mappings definieren und andere Daten verwenden.

Apply. Klicken Sie hier, um Ihr Formular erstellen zu lassen. Das Generieren Ihres Formulars dauert nur wenige Sekunden. Falls Sie mehr Felder für eine bestimmte Bildschirmseite ausgewählt haben als in einer Spalte Platz finden, wird automatisch eine zusätzliche Spalte verwendet.

Der Prozess, ein Formular zu erstellen, ist ein einmaliger Vorgang. Nachdem Sie Ihr Formular erstellt haben, werden Sie in der Regel individuelle Anpassungen an diesem Formular vornehmen, bis es Ihren Bedürfnissen entspricht.

Cancel. Bricht das Erstellen des VFX Form Builder Prozesses ab. Alle Selektionen und Eingaben gehen verloren.

Der VFX Grid Builder

Aufruf des VFX Grid Builders

Der VFX Grid Builder automatisiert die Erstellung von leistungsfähigen Grids. Die resultierenden Power Grids sind leistungsfähig und bleiben dennoch leicht zu bedienen und bieten keinerlei Leistungseinbussen gegenüber einem Standard Grid. Die Benutzer Ihrer Anwendungen werden die Merkmale der VFX Power Grids sehr zu schätzen wissen. Die inkrementelle Suche, das benutzerspezifische Abspeichern und Wiederherstellen von Spalten Layouts, Spaltenbreite, sowie die aktuell angewählte Sortierreihenfolge sprechen für sich.

Um den VFX Grid Builder aufzurufen, wählen Sie die letzte Bildschirmseite in Ihrem PageFrame Dialog and und klicken den Grid Control an. Um den Builder aufzurufen, betätigen Sie die rechte Maustaste und wählen Sie Builder an. Sie können auch direkt aus dem Property Sheet heraus die Builder Ikone anklicken. Stellen Sie auf jeden Fall sicher, dass Sie den Grid Control auch wirklich angewählt haben, ansonsten startet nicht der gewünschte VFX Grid Builder.

Der VFX Grid Builder lädt und präsentiert sich folgendermassen:

Benutzeroberfäche des VFX Grid Builders

HINWEIS: Dieser Builder ist voll reentrant. Das bedeutet, dass Sie diesen Builder beliebig oft aufrufen können ohne die Eingaben, welche Sie bereits in einer früheren Arbeitssitzung getätigt haben, zu verlieren.

Grid Control Source. Wählen Sie hier die Tabelle oder Ansicht welche als Grid Source agiert und definieren Sie hier auch die Alias in den Kolonnen des Grids. Jedes Grid muss über einen Record Source verfügen.

Fields/ Selected. In dieser Liste sehen Sie alle zur Verfügung stehenden Felder. Diese Felder werden aus dem Data Environment, welches Sie während dem Form Design definiert haben, gelesen. Um Felder auszuwählen oder wieder aus der Auswahl zu entfernen, brauchen Sie lediglich mit Doppelklick darauf zu klicken.

The Calculated Fields Button (...). Der VFX Grid Builder lässt es zu, beliebig viele berechnete Felder zu definieren. Klicken Sie hierbei auf die Schaltfläche mit den drei Punkten und definieren Sie Ihren Ausdruck.

Field Type. Diese Informationsfeld zeigt die Information des aktuell angewählten Feldes an. Wählen Sie das Feld in der Liste an und Sie sehen seine Feldlänge und den Typ.

Caption. Der VFX Grid Builder übernimmt die Captions erneut aus dem Datenkatalog. Sie können diese aber jederzeit an dieser Stelle überschreiben.

Control Source. Hier sehen Sie den Control Source. Er entspricht dem angewählten Feld. Im Normalfall werden Sie diesen kaum ändern wollen.

Format Mask. Hier wird ein Vorschlag für eine sinnvolle Eingabemaske definiert. Sie können diesen Vorschlag an dieser Stelle überschreiben.

Auto Size. Sie können dem VFX Grid Builder mitteilen, dass Sie eine Standard-Spaltenbreite in Anhängigkeit des angewählten Feldes wünschen.

Incremental Search. Falls Sie inkrementelle Suche auf dieser Spalte zulassen wollen, können Sie dies hier entsprechend angeben. Standardmässig wird für alle Spalten die inkrementelle Suche vorgeschlagen. Falls Sie diese nicht möchten, können Sie diese Checkbock löschen. Da die VFX inkrementelle Suche ohne Leistungseinbusse auftritt, ist es in der Regel angebracht, bei allen Spalten eine inkrementelle Suche zuzulassen. Es gilt hierbei allerdings zu beachten, dass bei sehr grossen Tabellen, wo kein CDX Index Tag mit UPPER(Feld) vorliegt, das Erstellen eines temporären Indexes etwas Zeit in Anspruch nehmen kann. Aus diesem Grund kann es angebracht sein, bei sehr grossen Tabellen, die inkrementelle Suche auf Spalten, bei denen ein Indexausdruck in der Form UPPER(Fled) vorliegt, zu beschränken.

Apply. Betätigen Sie diese Schaltfläche, um das Grid zu generieren. Dies wird einige Sekunden dauern und läuft ohne weitere Schritte vollautomatisch ab.

Cancel. Bricht das Erstellen des VFX Grid Builder Prozesses ab. Alle Selektionen und Eingaben gehen verloren.

Der VFX Picklist Builder

Resultat

Wenn Sie einen Picklist Control auf einem Datenformular verwenden, präsentiert sich dieser folgendermassen:

Der Benutzer kann eine Picklist auf eine der folgenden Arten aufrufen:

• Klicken auf die Picklist Schaltfläche (“Drei Punkte Knopf”),

• durch Doppelklicken auf das Picklist Eingabefeld, oder

• durch die Funktionstaste F9

Tip: Doppelklick auf die Beschreibungsfläche ruft die Auswahlliste im Bearbeitungsmodus auf.

In der Auswahlliste, in welcher dem Benutzer dieselben Features wie beim Power Grid zur Verfügung stehen, wie:

• Inkrementelle Suche inkl. Autosort,

• Sortierung durch Doppelklicken auf den Spaltenkopf,

• Auto-Resize, sowie

• Autosave der Position sowie des Grid Layouts

Der Benutzer kann den gewünschten Datensatz durch eine der folgenden Arten auswählen und den vorgesehenen Wert ins aktuelle Feld übernehmen:

• Doppelklicken,

• ENTER, oder

• durch die Schaltfläche OK.

Falls der Benutzer die Liste, welche sich hinter der Auswahlliste verbirgt, bearbeiten will, kann die Schaltfläche Unterhalt angewählt werden. Sehen Sie sich dafür auch die Alternativlösung, die unter Hint. beschrieben ist an.

Aufruf des VFX Picklist Builders

Einer der am meisten verwendeten Controls ist der Picklist Control. Dieser Container Control bietet Ihnen einen einfachen Weg, Eingabefelder zu definieren, deren Eingaben automatisch validiert werden wahlweise ein Auswahlfenster zur Verfügung stellen. Da die Picklist Klasse einige Properties enthält, welche definiert werden müssen um das gewünschte Resultat zu erreichen, stellt VFX einen eigens zu diesem Zweck definierten Builder zur Verfügung.

Auf diese Weise können Sie ein Picklist Control erstellen, ohne manuell Eigenschaften im Property Sheet eingeben zu müssen.

Um den VFX Picklist Builder aufzurufen, müssen Sie das entsprechende Pickfield Control auf Ihrem Formular angewählt haben.

HINWEIS: Um einen Control auf einer Seite eines Pageframes anzuwählen, müssen Sie sich etwas mit der Art und Weise, wie einzelne Objekte angewählt werden können auseinandersetzen. Ein effizienter Weg, durch eine Containerhierarchie hindurch zu navigieren, stellt das Betätigen der rechten Maustaste nach Anklicken des entsprechenden Containers dar. Hierbei wird im erscheinenden Kurzmenu Edit angewählt, um eine Containerstufe weiter nach unten zu gelangen. Probieren Sie dies aus, es lohnt sich hier, sich eine effiziente Arbeitsmethodik anzueignen.

Den Pick Field Builder aufzurufen ist erneut sehr einfach. Wählen Sie den Picklist Container an, rufen Sie mit der rechten Maustaste das Shortcut Menu auf und wählen Sie darin Builder. Selbstverständlich können Sie auch im Property Sheet die Builder Ikone anwählen.

Der VFX Pick Field Builder lädt und präsentiert folgenden Dialog:

Benutzeroberfläche des VFX Picklist Builders

HINWEIS: Der Pick Field Builder ist reentrant. Das bedeutet, dass dieser jederzeit im Entwicklungsprozess aufgerufen werden kann ohne die zuvor eingegebenen Parameter zu verlieren.

Pick Dialog Caption. Geben Sie hier den Text ein, welcher als Titel in der Pickliste erscheinen soll. Bsp: “Bitte wählen Sie ein Produkt aus…”

Dataform Name. In der Pickliste hat der Benutzer die Möglichkeit, direkt in die Datenbearbeitungsmaske der Auswahlliste zu verzweigen. Geben Sie hier den Namen des Formulars an, welches aufgerufen werden soll, falls der Benutzer Bearbeiten anwählt.

Pick Table. Name der Tabelle oder der View, aus welcher ausgewählt resp. gegenüber welcher validiert werden soll.In der Combobox können Sie aus den im Data Environment vorhandenen Tabellen auswählen. Beachte: Die Tabelle, aus welcher ausgewählt werden soll resp. gegenüber welcher validiert werden soll, muss Im Data Environment aufgenommen sein oder manuell geöffnet werden.

Pick Table Order. Wählen Sie hier die Order für die Auswahlliste. Es ist wichtig, dass Sie den Index angeben, mit welchem validiert werden soll. Der Benutzer hat dann immer noch die Möglichkeit, die Sortierreihenfolge der Auswahlliste zu verändern.

Pick Return Code Field. Geben Sie hier den Namen des Feldes, welches aus der Auswahlliste ausgewählt werden soll, ein.

Null Value. Wählen Sie diese Checkbox an, falls das Eingabefeld auch leer gelassen werden darf.

Auto Setup. Die VFX Property AutoSetup definiert, ob das entsprechende Control mit den jeweiligen Formstatus (form.nFormStatus 0, 1 oder 2) View, Edit oder Insert synchronisiert werden soll oder nicht. Normalerweise ist dies erwünscht. Es kann jedoch Situationen geben, wo dies nicht der Fall ist. Beispielsweise bei der Verwendung eines Pickfield Controls ausserhalb eines normalen Daten- Manipulationsformulars.

Auto Resize. Stellt die Grösse der Textboxelemente auf Standardgrösse ein.

HINWEIS:Der Pick Field Builder kann beliebig oft aufgerufen werden, ohne die vorherigen Eingaben zu verlieren..

Pick Return Description Field. Name des Beschreibungsfeldes aus der Auswahltabelle. Eingabe ohne Alias.

Pick More Expressions. Falls Sie jedesmal, nachdem der Benutzer einen Datensatz aus der Auswahlliste ausgewählt, bzw. einen gültigen Wert eingegeben hat, zusätzliche Informationen aus der Auswahltabelle übernehmen wollen, können Sie hier einen beliebigen Ausdruck eingeben, der auf der Auswahltabelle evaluiert wird. Der Rückgabewert wird automatisch in der Property ReturnMoreExprVal abgespeichert, von wo aus er weiter verwendet werden kann.

HINWEIS: Ein ebenso praktischer Weg, Werte nach dem Auswählen eines Datensatzes aus der Pickliste zu übernehmen, stellt der onPick() Event dar..

Field Control Source. Geben Sie hier den Control Source der Textbox ein. Dieser wird durch den VFX Form Builder bereits vordefiniert.

Description Control Source. Hier geben Sie den Control Source des Beschreibungsfeldes ein. Denken Sie daran, eine Relation in die entsprechende Tabelle zu setzen, damit die Beschreibungstexte beim Navigieren durch die Haupttabelle korrekt nachgeführt werden. Normalerweise wird dies durch eine n:1 Relation im Data Environment vorbereitet.

User Refresh Code. Manchmal ist es erwünscht, speziellen Code im Refresh Code des Oick Feld Controls zu haben. Geben Sie diesen hier ein. Denken Sie aber daran, mit dem Scope Resolution Operator den Code des Parent aufzurufen!

3D Description. Geben Sie hier an, ob Sie die Beschreibungszeile im 3D Look wollen oder nicht.

Hinzufügen des Formulars in den Datei/ Öffnen Dialog

VFX stellt einen Vorschlag eines Datei Öffnen Dialoges zur Verfügung. Selbstverständlich können Sie einen besser auf Ihre Applikation abgestimmten Dialog entwerfen und diesen an Stelle des VFX File Open Dialoges verwenden. Schauen Sie in diesem Fall lediglich die Runform Anweisungen ab und bauen Sie diese in Ihre Eigenkreation ein.

Der VFX Datei Öffnen Dialog wird durch den Inhalt der Tabelle VFXFOPEN gesteuert. Alle in dieser Tabelle enthaltenen formbezogenen Informationen werden hierfür verwendet den Datei Öffnen Dialog aufzubauen. Die Struktur der VFXFOPEN Tabelle präsentiert sich folgendermassen:

VFXOpen Feld Beschreibung Beispiel

ObjectID Im VFX Datei Öffnen Dialog stehen zwei Seiten eines Pagefrmes zur Verfügung. Der Erste namens Page1, der Zweite namens Page2. ObjectID definiert entweder Page1, oder Page2, je nachdem, auf welcher Seite das entsprechende Form präsentiert werden soll. PAGE1

ObjectNo Geben Sie hier die Sortierreihenfolge an. Eins steht zu oberst, 2 folgend usw… 1

Title Hier steht der Titel des Formulars, welcher in Datei Öffnen Dialog in der Liste der verfügbaren Formulare erscheint. Firmen

Descr Geben Sie die Beschreibung ein, welche im Datei Öffnen Dialog im eigens hierfür vorgesehenen Textfeld erscheint. Liste aller Firmen

Form Geben Sie hier den Namen des Formulars (ohne Endung) ein, welches aufgerufen werden soll. COMP

Parameter Falls Sie dem entsprechenden Formular noch Parameter übergeben wollen, können Sie dies hier tun.