© 2005 uwe habermann visual extend 9.0 workshop april 2005 uwe habermann visual extend product...
TRANSCRIPT
© 2005 Uwe Habermann
Visual Extend 9.0Workshop April 2005
Uwe HabermannVisual Extend Product Manager
© 2005 Uwe Habermann
Wer spricht da?
Dipl.-Inform. Uwe Habermann Selbstständig seit 1986 Arbeitet mit FoxPro seit FPW 2.5 MCP für VFP Freier Mitarbeiter von u. a. ProLib, Wizards & Builders
und ISYS Uwe Habermann & Kathrin Leu GbR
Entwickelt Branchenlösung und Individualsoftware Visual Extend Product Manager
© 2005 Uwe Habermann
Die Themen
Erstellen einer Anwendung mit dem VFX Application Wizard/Builder
Erstellen von Formularen basierend auf Tabellen OneToMany-Formulare Der neue Parent/Child-Builder Treeview-Formulare Erstellen von Formularen basierend auf CursorAdaptern Wechsel von DBC auf SQL-Server und umgekehrt Erstellen von PDF-Dateien und E-Mailversand Sinnvoller Einsatz von Hooks Produktaktivierung Behandlung von Laufzeitfehlern Aktualisierung der Anwendung und der Datenbank beim Kunden Aktualisierung mit dem neuen Update Project Wizard
© 2005 Uwe Habermann
Visual Extend 9.0
Das größte Update seit es VFX gibt Aktueller Build VFX 9.00.2806 Features für Entwickler
Datenzugriff Features für Endanwender Beispielanwendungen
VFX90Traders VFX90Test VFPizza
Dokumentation
© 2005 Uwe Habermann
Installation VFX90Setup.exe Vfxmnu.app als Startanwendung einstellen Beim 1. Start von Vfxmnu.app wird ggf. die VFP Task
Pane geöffnet und die VFX 9.0 Task Pane wird hinzugefügt
Pfadeinstellungen in den Optionen von VFP sind NICHT erforderlich
Wer braucht einen Aktivierungsschlüssel?
© 2005 Uwe Habermann
VFX 9.0 - Task Pane
Verwaltung der VFX-Projekte Beim Öffnen wird der aktuelle Pfad auf den
Projektordner gesetzt Anlegen neuer Projekte Kompilieren vorhandener Projekte Bearbeiten der Project Properties
Ermöglicht die Verwendung eigener Klassen von den VFX Buildern
Informationen über VFX 9.0 mit einem Mausklick
© 2005 Uwe Habermann
VFX 9.0 - Application Wizard
Erstellen neuer Projekte Auswahl des Ordners und der Datenbank Texte für den About-Dialog Einstellungen für das Applikationsobjekt
• Auswahl aus 11 Sprachen• und noch viel mehr Einstellungen
Texte für den Projektinfo-Dialog Alles kompilieren und los geht´s...
Projekt: VFPizza, Datenbank: VFP
© 2005 Uwe Habermann
Die generierte VFX-Anwendung
Splash-Screen Anmeldedialog Menü und Symbolleiste Öffnen-Dialog im XP-Stil Benutzerverwaltung Benutzerrechte Datenbankwartung und vieles andere mehr...
© 2005 Uwe Habermann
Wie geht es weiter?
Anlegen der Datenbank mit dem VFP Datenbank-Designer oder mit xCase oder mit SDT
Kopieren einer vorbereiteten Datenbank VFP.dbc
© 2005 Uwe Habermann
VFX 9.0 – Form Wizard
Erstellen eines Formulars basierend auf einer der VFX Formularklassen: cDataFormPage cTreeViewForm cTableForm cOneToMany cTreeViewOneToMany cAskViewArg cWizard
Verwendung eigener Formularklassen Beispiel: Kunden.scx
© 2005 Uwe Habermann
VFX 9.0 – DataEnvironment Builder
Verwaltung der Datenumgebung Hinzufügen von Tabellen und Ansichten Erstellen von CursorAdapter-Klassen on the fly
Verwaltung von Indizes und Relationen Indizes können für CursorAdapter und Ansichten
erstellt werden Relationen zwischen allen Cursorn mit Index
möglich Beispiel: Customers.dbf
© 2005 Uwe Habermann
VFX 9.0 – cDataFormPage Builder
Reentranter Builder Steuerelemente auf Seitenrahmen Such-Grid mit vielen Funktionen Formulareigenschaften
Verwendung eigener Klassen Entsprechend den Vorgaben aus dem DBC Entsprechend den Einstellungen in den
VFX - Project Properties
Beispiel: Kunden.scx
© 2005 Uwe Habermann
Das Formular zur Laufzeit
Autoedit Inkrementelle Suche im Grid
Multi-Column-Sort Benutzerspezifisches Speichern der Einstellungen
Größe und Position des Formulars auf dem Desktop Spaltenbreite, Spaltenfolge und Sortierfolge im Grid Suchkriterien
© 2005 Uwe Habermann
VFX – cOneToMany Builder
cOneToMany Bearbeitung und Suche in Parent-Daten wie bei
cDataFormPage Bearbeitung von Child-Daten im Grid Bearbeitung von Child-Daten mit anderen
Steuerelementen Unterstützung mehrerer Children
Beispiel: Auftrag.scx
© 2005 Uwe Habermann
Linked-Child-Formulare
Aufruf eines Child-Formulars Hierarchische Verknüpfung möglich Beliebig viele Children möglich Eigenschaften zur Steuerung
lCloseChildformOnExit lAutoSyncChildform
Beispiel: Kunden - Aufträge
© 2005 Uwe Habermann
VFX – Treeview
Perfekte Darstellung hierarchischer Daten wie im Windows-Explorer
Reentrante Builder cTreeviewForm cTreeviewOnetoMany
Beispiel: Kategorien.scx
© 2005 Uwe Habermann
Datenzugriff Theorie
CursorAdapter Klasse –> Eigenschaften, Methoden VFX Connection Manager
Vorteile: Datenquelle zur Laufzeit austauschbar
• Informationen zur Datenbank verschlüsselt gespeichert
DBC SQL Server
Fat Client – Datenzugriff über das Internet
© 2005 Uwe Habermann
Die Lösung
CursorAdapter Vorteile:
Klasse – Vererbung, Eigenschaften, Methoden Einheitlicher Datenzugriff Datenzugriff auf DBC und SQL Server möglich Umschaltbarkeit zur Laufzeit Builder in VFP vorhanden
© 2005 Uwe Habermann
Remote Views vs. CursorAdapter
Remote View und Connection im DBC gespeichert Nachteil:
Verbindungsinformationen im Klartext lesbar• ggf. manipulierbar
CursorAdapter als programmatische oder visuelle Klasse in die Exe-Datei eingebunden Zur Laufzeit beliebig konfigurierbar Mit DBC und Remote Datenbanken einsetzbar
© 2005 Uwe Habermann
Wie macht man es richtig?
CursorAdapter-Klasse verwendet ConnectionManager
ConnectionManager liest Datenbankinformationen aus Konfigurationsdatei
Wichtig: CursorAdapter-Funktionalität unbedingt in einer Klasse speichern
© 2005 Uwe Habermann
Programmstart
Im Init Ereignis des Anwendungsobjekts wird der ConnectionManager instanziiert
Beim Instanziieren eines CursorAdapters wird vom ConnectionManager eine Connection geholt
Dabei werden aus einer verschlüsselten Tabelle die Datenbankinformationen gelesen
Die CursorAdapter-Klasse verwendet die Informationen des ConnectionManagers
© 2005 Uwe Habermann
CursorAdapter Klasse
Herstellen der Verbindung zur Datenbank über den ConnectionManager
Holen von ID-Werten Wartbarkeit
© 2005 Uwe Habermann
IDs
IDs sollten von der Datenbank vergeben werden CursorAdapter ermöglichen diese IDs nach dem
Speichern aus der Datenbank zu holen InsertCmdRefreshFieldList – Liste zu holender
Felder InsertCmdRefreshCmd – wird nach dem Insert
ausgeführt – Hier können IDs geholt werden GETAUTOINCVALUE() bei DBC
• select * from <myTable> where <IdField>=GETAUTOINCVALUE()
@@IDENTITY bei SQL Server
© 2005 Uwe Habermann
Connection Manager Klasse
Instanziierung ohne Datenanbindung Herstellen einer(!) Verbindung beim ersten Bedarf
Auslesen der Datenbankinformationen aus einer Datei möglich
Eine Connection für alle Datenzugriffe der Anwendung
Verwendung mehrerer Datenbanken in einer Anwendung
© 2005 Uwe Habermann
Planen einer neuen Anwendung
Nur mit CusorAdapter arbeiten! basierend auf cBaseDataAccess
Vorteile: Es wird nur 1 Verbindung benötigt Austauschbarkeit der Datenquelle Wechsel von DBC zu SQL möglich Entscheidung je Kunde ob DBC oder SQL
verwendet werden soll
© 2005 Uwe Habermann
Datenzugriff Praxis
VFX - CursorAdapter Wizard Neues Formular mit dem VFX - Form Wizard erstellen Test Upsizing Manage Config.vfx
© 2005 Uwe Habermann
CursorAdapter Wizard
Erstellen von CursorAdaptern zu allen Tabellen einer Datenbank
für VFP-Datenbanken für Remote-Datenbanken
© 2005 Uwe Habermann
Formulare basierend auf CursorAdapter
In allen VFX-Formularklassen können CursorAdapter verwendet werden
Eingabe der Parameter auf dem Formular cAskViewArg cAskViewArgPgf
Beispiel: KundenCA.scx
© 2005 Uwe Habermann
Datenquellen bearbeitenManage Config.vfx
Verwaltung des DatenzugriffsDialog in der Anwendung beim Kunden
nutzbarProblemloser Wechsel zwischen DBC und
SQL Server ConnectionString empfehlenswert
Verschlüsselung mit Kennwort Einstellung mit dem Application Builder goprogram.cconfigpassword
© 2005 Uwe Habermann
Multi-Client-Support
Mandantenfähige Anwendungen mitRemote-Datenbanken! Datenzugriff bearbeiten – Config.vfx
Mandantenfähige Anwendungen mit DBC cDatadir="" in Vfxmain.prg Pfadeinstellungen in Vfxpath.dbf
Ordner "Data" beim Kunden nicht verwendbar
© 2005 Uwe Habermann
Test
Läuft die Anwendung mit DBC und SQL Server?
© 2005 Uwe Habermann
Drucken, Speichern als, E-Mail
Drucken ist aus allen Formularen möglich ohne eine Berichtsdatei zu erstellen Auswahl des Zeichensatzes Automatische Summierung
Unterstützung der Exportformatevon VFP 9 Und PDF-Export
E-Mailversand aller Exportformate
© 2005 Uwe Habermann
PDF-Export – Wie geht das?
Ausgabe der Berichtsausgabe über einen Postscript-Druckertreiber in eine Datei bei Bedarf automatische Installation eines
Postscript-Druckertreibers Konvertierung der Postscript-Datei in eine PDF-Datei
mit dem Freeware-Tool Ghostscript bei Bedarf Download aus dem Internet und
Installation von Ghostscript vollautomatisch! ggf. wird sogar eine DFÜ-Verbindung für den
Internet-Zugang angelegt
© 2005 Uwe Habermann
Internet und E-Mail
Makrosprache zum Download und zur Installation von Programmen aus dem Internet Installation von Ghostscript Installation des Adobe Reader Aktualisierung der Applikation bei Bedarf wird eine DFÜ-Verbindung für den
Internet-Zugang angelegt
E-Mailversand aller Berichtsausgaben über MAPI
© 2005 Uwe Habermann
Fax-Unterstützung
Als weitere Option zur Berichtsausgabe
Unterstützte Faxprogramme: AVM FRITZ!fax Symantec Winfax
Beispiel: jedes VFX-Formular
© 2005 Uwe Habermann
Produktaktivierung
VFX 8.0-Anwendungen können mit einem Aktivierungsschlüssel geschützt werden
Getrennter Schutz für bis zu 32 Module einer Anwendung
Die zur Erstellung des Installationsschlüssels verwendeten Kriterien können je Anwendung vom Entwickler festgelegt werden
© 2005 Uwe Habermann
Produktaktivierung
Einschalten im VFX - Application Wizard 3. Options
• Enable product activation• Use „FirstInstall.txt“ file
Ändern Eigenschaften von Vfxmain.prg
• goProgram.lUseActivation = .T.• goProgram.lActivationType= .F.
© 2005 Uwe Habermann
Define Activation Rules
Definition der Hardware- oder Software-Parameter Ausdruck CPU Number File Creation Date HDD Factory Serial Number HDD Volume Serial Number LAN Card Number Registry Key Value
je Anwendung beliebig kombinierbar Regeln speicherbar
© 2005 Uwe Habermann
Define Activation Rules
Vergabe der Rechte
bis zu 32 Einzelrechte je Anwendung
jedes Recht kann unabhängig von den anderen Rechten freigeschaltet werden
Zugriff zur Laufzeit über goProgram.SecurityRights.<RechtName>
© 2005 Uwe Habermann
Create Activation Key
Eingabe des Installationsschlüssels Auswahl der freizuschaltenden Rechte Erstellen eines Aktivierungsschlüssels
Werte zur Laufzeit goProgram.SecurityRights.<RechtName>= -1 – nicht aktiviert 0 – nicht freigeschaltet 1 – freigeschaltet
© 2005 Uwe Habermann
Die Aktivierung aus der Sicht des Kunden
Aufforderung zu Aktivierung beim Programmstart Anzeige des Installationsschlüssels Eingabe des Aktivierungsschlüssels
Aktivierung über das Menü zum Beispiel beim Zukauf von Rechten
Übermittlung der Schlüssel per E-Mail möglich
© 2005 Uwe Habermann
Fehlerbehandlung
Anzeige von Laufzeitfehlern in bekannten Windows-Dialogen <g>
Akzeptanz durch Benutzer
Fehlerberichte können per E-Mail an den Entwickler gesendet werden
© 2005 Uwe Habermann
Fehlerbehandlung
Was soll passieren, wenn ein Fehler auftritt? goProgram.nAppOnErrorBehavior=
• 0 – alle Fehler ignorieren• 1 – Anzeige einer Fehlermeldung (Standardwert)• 2 - Programmabbruch
Welche Fehlerinformationen werden protokolliert? goProgram.ErrorDetailLevel=
• 0 – nur die Fehlermeldung• 1 – Fehlermeldung und Aufrufstapel (Standardwert)• 2 – detaillierte Fehlerinformationen
(Standardverhalten bis VFX 7.1)
Versand des Fehlerprotokolls per E-Mail goProgram.csupportemail
© 2005 Uwe Habermann
Aktualisierung der Anwendungüber das Internet
ftp://<meinserver>/meineExeDatei.vfxoderhttp://<meinserver>/meineExeDatei.vfxwird in SYS(2023)-Ordner gespeichert
Austausch der laufenden Exe-Datei mittels Loader.exe
© 2005 Uwe Habermann
Hooks
Einschalten in Vfxmain.prg nEnableHook=1 Enabled, 2 Disabled, 0 Use form
setting
Rückgabewerte steuern das Verhalten .T.
Ausführung fortsetzen 0 oder .F.
Ausführung abbrechen, Rückgabewert .T. 1
Ausführung abbrechen, Rückgabewert .F.
© 2005 Uwe Habermann
Update Project Wizard
Vollautomatische Aktualisierung bestehenderVFX-Anwendungen
Aktualisierung auf den neuesten VFX Build
© 2005 Uwe Habermann
Weitere Features für Entwickler
Task Panes VFX 9.0 VFX-Community
Viele neue Wizards und Builder Project Update Wizard Application Builder CursorAdapter Wizard Parent/Child Builder Audit Trigger Wizard Project Documenting
© 2005 Uwe Habermann
Benutzerverwaltung
Verwaltung von Benutzergruppen mit Rechten
Protokolle und Sichten für aktiv eingeloggte Anwender (für exklusive Tasks)
© 2005 Uwe Habermann
Suchdialog
Beliebig viele Filterbedingungen kombinierbar
Einstellungen je Formular und Benutzer gespeichert
Nur sinnvolle Operatoren
Keine ungültigen Eingaben möglich
© 2005 Uwe Habermann
Datum und Zeit
neuer Kalender basierend auf MonthView Control keine OCX-Installation erforderlich
Hotkeys zur Datumsauswahl H – heute A – Anfang des Jahres B – Beginn des Monats +/- - 1 Tag vorwärts oder zurück
Eingabe von Datetime-Werten
© 2005 Uwe Habermann
OLE drag & drop
Vollständig generisch in VFX integriert aus einem Steuerelement
• nOLEenabledrag=1• nOLEdropForceEditmode=1
aus einer Seite eines Seitenrahmens unter Berücksichtigung der Taborder
• nPageOLEdragdrop=1
aus einem Grid• immer eingeschaltet
Unterstützung aller Datentypen
© 2005 Uwe Habermann
Einstellung der Sprache zur Laufzeit
Runtime Localization
Im Anmeldedialog
In einer Combobox in der Symbolleiste
Beispiel: VFX90Test und VFX90Traders
© 2005 Uwe Habermann
Datensicherung mit ZIP-Funktion
ZIP-Algorithmus in VFX 9.0 integriert
Datensicherung der aktuellen Datenbank in eineZip-Datei über einen Menüpunkt
Wiederherstellung der aktuellen Datenbank aus einer Zip-Datei über einen Menüpunkt
direkter Aufruf der ZIP-Funktionenfür eigene Anwendungen möglich
© 2005 Uwe Habermann
VFX.fll
Internet, E-Mail und Hilfsfunktionen
Produktaktivierung
Datensicherung
SQL Server
Achtung: Die VFX.fll muss an den Kunden mitgeliefert werden!
© 2005 Uwe Habermann
VFX-Menü-Designer
WYSIWYG
Unterstützung aller Menü-Features, die VFP bietet Schriftartattribute, Effekte alle Events Menüeinträge mit Markierung
Unterstützung von Konstanten sprachunabhängige Menüs
© 2005 Uwe Habermann
Wichtige VFX-Methoden
Valid auf Formularebene OnRecordMove OnPostInsert OnSave OnPrint OnPrev, OnNext, OnTop, OnBottom
© 2005 Uwe Habermann
Dokumentenverwaltung
Container-Klasse zur Verwaltung von Dokumenten Per Drag & Drop auf jedem Formular einsetzbar Einfache Konfiguration Dokumente sind „Children“
Beispiel: Parent.scx in VFX90Test
© 2005 Uwe Habermann
Audit-Trail
Neuer Trigger Wizard!
Trigger in den Tabellen _audit_insert() _audit_update() _audit_delete()
Anzeige des Protokolls über ein VFX-Formular Und-Verknüpfung mit anderen Triggern möglich
© 2005 Uwe Habermann
Was noch?
Integriertes Werkzeug für die Datenbankreparatur Konfigurieren einer DFÜ-Netzwerkverbindung
Define DUN connection parameters Integration eines Fernwartungsprogramms Automatische Installation des Abobe Reader beim
Kunden Und vieles mehr…
© 2005 Uwe Habermann
VFX90Test
Benutzergruppen Dokument-Container COneToManyPageFrame Geschäftsgrafiken mit CBusinessGraph Menü Extras
© 2005 Uwe Habermann
VFX90Traders
Basierend auf Tastrade.dbc Office Compatible Drucken, Speichern, E-Mailversand, Fax 1:n Formulare mit Auswahllisten Produktaktivierung Aktualisierung der Anwendung über das Internet
Kundenverwaltung Versionsverwaltung
Fernwartung
© 2005 Uwe Habermann
Wir haben das Ziel erreicht!
Die Anwendung ist fertig. Kompletter Rahmen durch VFX erstellt Datenbank mit üblichen Tools erstellt Formulare mit den VFX Buildern erstellt Bearbeitung mit VFP zu jeder Zeit Hohe Qualität = zufriedene Kunden
© 2005 Uwe Habermann
Links
Download und Infos zu VFX: www.visualextend.de
Mehr Infos zu VFX: www.my-vfx.de
Kostenloser Support zu VFX: news.dfpug.de
© 2005 Uwe Habermann
VFX 9.0
Jetzt testen!
• Aktivierungsschlüssel für 30 Tage kostenlos!
• Beispielanwendung VFX90Test
• Beispielanwendung VFX90Traders
• Beispielanwendung VFPizza
• Handbuch deutsch und englisch
• Umfangreiche Informationen• Newsgroup• Portal
© 2005 Uwe Habermann
Vielen Dank für Euer Interesse!
Viel Spaß mit VFX 9.0 wünscht
Uwe Habermann
© 2005 Uwe Habermann
Pause!