Aufsteiger Workshop Visual Extend 9.0 - dFPUG

Werbung
Visual Extend 9.0
Workshop April 2005
Uwe Habermann
Visual Extend Product Manager
[email protected]
© 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 bearbeiten
Manage Config.vfx
 Verwaltung des Datenzugriffs
 Dialog in der Anwendung beim Kunden
nutzbar
 Problemloser 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 mit
Remote-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 Exportformate
von VFP 9
 Und PDF-Export
 E-Mailversand aller Exportformate
© 2005 Uwe Habermann
PDF-Export – Wie geht das?
 Ausgabe der Berichtsausgabe über einen PostscriptDruckertreiber 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 WindowsDialogen <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.vfx
oder
http://<meinserver>/meineExeDatei.vfx
wird 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 bestehender
VFX-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 eine
Zip-Datei über einen Menüpunkt
 Wiederherstellung der aktuellen Datenbank aus einer
Zip-Datei über einen Menüpunkt
 direkter Aufruf der ZIP-Funktionen
fü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!
© 2005 Uwe Habermann
Herunterladen