© 2005 Uwe Habermann Visual Extend 9.0 Workshop April 2005 Uwe Habermann Visual Extend Product...

Preview:

Citation preview

© 2005 Uwe Habermann

Visual Extend 9.0Workshop April 2005

Uwe HabermannVisual Extend Product Manager

Uwe.Habermann@dFPUG.de

© 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!

Recommended