VFX 9.5 - Workshop VFX 9.5 – Workshop Uwe Habermann Visual Extend Product Manager...
-
Upload
harm-heming -
Category
Documents
-
view
108 -
download
0
Transcript of VFX 9.5 - Workshop VFX 9.5 – Workshop Uwe Habermann Visual Extend Product Manager...
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX 9.5 – Workshop VFX 9.5 – Workshop
Uwe HabermannUwe HabermannVisual Extend Product ManagerVisual Extend Product Manager
[email protected]@dFPUG.de
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Wer spricht da? Wer spricht da?
Dipl.-Inform. Uwe HabermannDipl.-Inform. Uwe Habermann Selbstständig seit 1986Selbstständig seit 1986 Arbeitet mit FoxPro seit FPW 2.5Arbeitet mit FoxPro seit FPW 2.5 MCP für VFPMCP für VFP Freier Mitarbeiter von u. a. ProLib, Wizards Freier Mitarbeiter von u. a. ProLib, Wizards
& Builders und ISYS& Builders und ISYS Uwe Habermann & Kathrin Leu GbRUwe Habermann & Kathrin Leu GbR
– Entwickelt Branchenlösung und Entwickelt Branchenlösung und IndividualsoftwareIndividualsoftware
Visual Extend Product ManagerVisual Extend Product Manager
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Die ThemenDie Themen
Erstellen einer Anwendung mit dem VFX Application Erstellen einer Anwendung mit dem VFX Application Wizard/BuilderWizard/Builder
Erstellen von Formularen basierend auf TabellenErstellen von Formularen basierend auf Tabellen OneToMany-FormulareOneToMany-Formulare Parent/Child-BuilderParent/Child-Builder Treeview-FormulareTreeview-Formulare Erstellen von Formularen basierend auf CursorAdapternErstellen von Formularen basierend auf CursorAdaptern Wechsel von DBC auf SQL-Server und umgekehrtWechsel von DBC auf SQL-Server und umgekehrt Erstellen von PDF-Dateien und E-MailversandErstellen von PDF-Dateien und E-Mailversand Sinnvoller Einsatz von HooksSinnvoller Einsatz von Hooks ProduktaktivierungProduktaktivierung Behandlung von LaufzeitfehlernBehandlung von Laufzeitfehlern Aktualisierung der Anwendung und der Datenbank beim Aktualisierung der Anwendung und der Datenbank beim
KundenKunden Aktualisierung mit dem neuen Update Project WizardAktualisierung mit dem neuen Update Project Wizard
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Visual Extend 9.5Visual Extend 9.5
Aktueller Build VFX 9.50.1621/1718Aktueller Build VFX 9.50.1621/1718 Features für EntwicklerFeatures für Entwickler
– DatenzugriffDatenzugriff Features für EndanwenderFeatures für Endanwender BeispielanwendungenBeispielanwendungen
– VFX95Traders, VFX95Test, VFPizzaVFX95Traders, VFX95Test, VFPizza DokumentationDokumentation
VFX 9.5 - WorkshopVFX 9.5 - Workshop
InstallationInstallation
VFX95Setup.exeVFX95Setup.exe Vfxmnu.app als Startanwendung Vfxmnu.app als Startanwendung
einstelleneinstellen Beim 1. Start von Vfxmnu.app wird ggf. Beim 1. Start von Vfxmnu.app wird ggf.
die VFP Task Pane geöffnet und die VFX die VFP Task Pane geöffnet und die VFX 9.0 Task Pane wird hinzugefügt9.0 Task Pane wird hinzugefügt
Pfadeinstellungen in den Optionen von Pfadeinstellungen in den Optionen von VFP sind NICHT erforderlichVFP sind NICHT erforderlich
Wer braucht einen Aktivierungsschlüssel?Wer braucht einen Aktivierungsschlüssel?
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX 9.5 - Task PaneVFX 9.5 - Task Pane
Verwaltung der VFX-ProjekteVerwaltung der VFX-Projekte– Beim Öffnen wird der aktuelle Pfad auf den Beim Öffnen wird der aktuelle Pfad auf den
Projektordner gesetztProjektordner gesetzt Anlegen neuer ProjekteAnlegen neuer Projekte Kompilieren vorhandener ProjekteKompilieren vorhandener Projekte Bearbeiten der Project PropertiesBearbeiten der Project Properties
– Ermöglicht die Verwendung eigener Klassen Ermöglicht die Verwendung eigener Klassen von den VFX Buildernvon den VFX Buildern
Informationen über VFX 9.5 mit einem Informationen über VFX 9.5 mit einem MausklickMausklick
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX 9.5 - Application VFX 9.5 - Application Wizard Wizard Erstellen neuer ProjekteErstellen neuer Projekte
– Auswahl des Ordners und der DatenbankAuswahl des Ordners und der Datenbank– Texte für den About-DialogTexte für den About-Dialog– Einstellungen für das ApplikationsobjektEinstellungen für das Applikationsobjekt
Auswahl aus Auswahl aus 1717 Sprachen Sprachen und noch viel mehr Einstellungen und noch viel mehr Einstellungen
– Texte für den Projektinfo-DialogTexte für den Projektinfo-Dialog– Alles kompilieren und los geht´s...Alles kompilieren und los geht´s...
Projekt: VFPizza, Datenbank: VFPProjekt: VFPizza, Datenbank: VFP
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Die generierte VFX-Die generierte VFX-AnwendungAnwendung
– Splash-ScreenSplash-Screen– AnmeldedialogAnmeldedialog– Menü und SymbolleisteMenü und Symbolleiste– Öffnen-Dialog im XP-StilÖffnen-Dialog im XP-Stil– BenutzerverwaltungBenutzerverwaltung– BenutzerrechteBenutzerrechte– DatenbankwartungDatenbankwartung– und vieles andere mehr...und vieles andere mehr...
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Wie geht es weiter?Wie geht es weiter?
Anlegen der DatenbankAnlegen der Datenbank– mit dem VFP Datenbank-Designermit dem VFP Datenbank-Designer– oder mit xCaseoder mit xCase– oder mit SDToder mit SDT
Kopieren einer vorbereiteten Kopieren einer vorbereiteten DatenbankDatenbank– VFP.dbc (sowie Bitmaps)VFP.dbc (sowie Bitmaps)
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX 9.5 – Form WizardVFX 9.5 – Form Wizard
Erstellen eines Formulars basierend auf Erstellen eines Formulars basierend auf einer der VFX Formularklassen:einer der VFX Formularklassen:– cDataFormPagecDataFormPage– cTreeViewFormcTreeViewForm– cTableFormcTableForm– cOneToManycOneToMany– cTreeViewOneToManycTreeViewOneToMany– cAskViewArgcAskViewArg– cWizardcWizard
Verwendung eigener FormularklassenVerwendung eigener Formularklassen Beispiel: Kunden.scxBeispiel: Kunden.scx
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX 9.5 – VFX 9.5 – DataEnvironment BuilderDataEnvironment Builder Verwaltung der DatenumgebungVerwaltung der Datenumgebung
– Hinzufügen von Tabellen und AnsichtenHinzufügen von Tabellen und Ansichten– Erstellen von CursorAdapter-Klassen on Erstellen von CursorAdapter-Klassen on
the flythe fly Verwaltung von Indizes und RelationenVerwaltung von Indizes und Relationen
– Indizes können für CursorAdapter erstellt Indizes können für CursorAdapter erstellt werdenwerden
– Relationen zwischen allen Cursorn mit Relationen zwischen allen Cursorn mit Index möglichIndex möglich
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX 9.5 – VFX 9.5 – cDataFormPage BuildercDataFormPage Builder Reentranter BuilderReentranter Builder
– Steuerelemente auf SeitenrahmenSteuerelemente auf Seitenrahmen– Such-Grid mit vielen Funktionen Such-Grid mit vielen Funktionen – FormulareigenschaftenFormulareigenschaften
Verwendung eigener KlassenVerwendung eigener Klassen– Entsprechend den Vorgaben aus dem DBCEntsprechend den Vorgaben aus dem DBC– Entsprechend den Einstellungen in denEntsprechend den Einstellungen in den
VFX - Project PropertiesVFX - Project Properties Beispiel: Kunden.scxBeispiel: Kunden.scx
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Das Formular zur Das Formular zur LaufzeitLaufzeit AutoeditAutoedit Inkrementelle Suche im GridInkrementelle Suche im Grid
– Multi-Column-SortMulti-Column-Sort Benutzerspezifisches Speichern der Benutzerspezifisches Speichern der
EinstellungenEinstellungen– Größe und Position des Formulars auf dem Größe und Position des Formulars auf dem
DesktopDesktop– Spaltenbreite, Spaltenfolge und Sortierfolge im Spaltenbreite, Spaltenfolge und Sortierfolge im
GridGrid– SuchkriterienSuchkriterien
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX – cOneToMany VFX – cOneToMany BuilderBuilder cOneToManycOneToMany
– Bearbeitung und Suche in Parent-Daten Bearbeitung und Suche in Parent-Daten wie bei cDataFormPagewie bei cDataFormPage
– Bearbeitung von Child-Daten im GridBearbeitung von Child-Daten im Grid– Bearbeitung von Child-Daten mit Bearbeitung von Child-Daten mit
anderen Steuerelementenanderen Steuerelementen– Unterstützung mehrerer ChildrenUnterstützung mehrerer Children
Beispiel: Auftrag.scxBeispiel: Auftrag.scx
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Kunden auswählenKunden auswählenVFX – CPickField BuilderVFX – CPickField Builder Auswahl eines Kunden für einen Auswahl eines Kunden für einen
AuftragAuftrag• Eingabe einer KundennummerEingabe einer Kundennummer• Auswahl eines Kunden aus einer ListeAuswahl eines Kunden aus einer Liste
Alle Suchfunktionen bei ListenauswahlAlle Suchfunktionen bei Listenauswahl
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Artikel auswählenArtikel auswählenVFX – CPickTextbox VFX – CPickTextbox BuilderBuilder Auswahl eines Artikels für eine Auswahl eines Artikels für eine
AuftragspositionAuftragsposition• Eingabe einer ArtikelnummerEingabe einer Artikelnummer• Auswahl eines Artikels aus einer ListeAuswahl eines Artikels aus einer Liste
Alle Suchfunktionen bei ListenauswahlAlle Suchfunktionen bei Listenauswahl
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Linked-Child-FormulareLinked-Child-Formulare
Aufruf eines Child-FormularsAufruf eines Child-Formulars Hierarchische Verknüpfung möglichHierarchische Verknüpfung möglich Beliebig viele Children möglichBeliebig viele Children möglich Eigenschaften zur SteuerungEigenschaften zur Steuerung
– lCloseChildformOnExitlCloseChildformOnExit– lAutoSyncChildformlAutoSyncChildform
Beispiel: Kunden - AufträgeBeispiel: Kunden - Aufträge
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX – TreeviewVFX – Treeview
Perfekte Darstellung hierarchischer Perfekte Darstellung hierarchischer Daten wie im Windows-ExplorerDaten wie im Windows-Explorer
Reentrante BuilderReentrante Builder– cTreeviewFormcTreeviewForm– cTreeviewOnetoManycTreeviewOnetoMany
Beispiel: Kategorien.scxBeispiel: Kategorien.scx
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Datenzugriff TheorieDatenzugriff Theorie
CursorAdapterCursorAdapter– Klasse –> Eigenschaften, MethodenKlasse –> Eigenschaften, Methoden– VFX Connection ManagerVFX Connection Manager
Vorteile:Vorteile:– Datenquelle zur Laufzeit austauschbarDatenquelle zur Laufzeit austauschbar
Informationen zur Datenbank verschlüsselt Informationen zur Datenbank verschlüsselt gespeichertgespeichert
– DBCDBC– SQL ServerSQL Server
Fat Client – Datenzugriff über das InternetFat Client – Datenzugriff über das Internet
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Die LösungDie Lösung
CursorAdapterCursorAdapter Vorteile:Vorteile:
– Klasse – Vererbung, Eigenschaften, Klasse – Vererbung, Eigenschaften, MethodenMethoden
– Einheitlicher DatenzugriffEinheitlicher Datenzugriff– Datenzugriff auf DBC und SQL Server Datenzugriff auf DBC und SQL Server
möglichmöglich– Umschaltbarkeit zur LaufzeitUmschaltbarkeit zur Laufzeit– Builder in VFP vorhandenBuilder in VFP vorhanden
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Remote Views vs. Remote Views vs. CursorAdapterCursorAdapter Remote View und Connection im DBC Remote View und Connection im DBC
gespeichertgespeichert Nachteil:Nachteil:
– Verbindungsinformationen im Klartext lesbarVerbindungsinformationen im Klartext lesbar ggf. manipulierbarggf. manipulierbar
CursorAdapter als programmatische oder CursorAdapter als programmatische oder visuelle Klasse in die Exe-Datei visuelle Klasse in die Exe-Datei eingebundeneingebunden– Zur Laufzeit beliebig konfigurierbarZur Laufzeit beliebig konfigurierbar– Mit DBC und Remote Datenbanken einsetzbarMit DBC und Remote Datenbanken einsetzbar
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Wie macht man es Wie macht man es richtig?richtig?
CursorAdapter-Klasse verwendet CursorAdapter-Klasse verwendet ConnectionManagerConnectionManager
ConnectionManager liest ConnectionManager liest Datenbankinformationen aus Datenbankinformationen aus KonfigurationsdateiKonfigurationsdatei
Wichtig:Wichtig: CursorAdapter- CursorAdapter-Funktionalität unbedingt in einer Funktionalität unbedingt in einer Klasse speichernKlasse speichern
VFX 9.5 - WorkshopVFX 9.5 - Workshop
ProgrammstartProgrammstart
Im Init Ereignis des Anwendungsobjekts Im Init Ereignis des Anwendungsobjekts wird der ConnectionManager instanziiertwird der ConnectionManager instanziiert
Beim Instanziieren eines CursorAdapters Beim Instanziieren eines CursorAdapters wird vom ConnectionManager eine wird vom ConnectionManager eine Connection geholtConnection geholt
Dabei werden aus einer verschlüsselten Dabei werden aus einer verschlüsselten Tabelle die Datenbankinformationen Tabelle die Datenbankinformationen gelesengelesen
Die CursorAdapter-Klasse verwendet die Die CursorAdapter-Klasse verwendet die Informationen des ConnectionManagersInformationen des ConnectionManagers
VFX 9.5 - WorkshopVFX 9.5 - Workshop
CursorAdapter KlasseCursorAdapter Klasse
Herstellen der Verbindung zur Herstellen der Verbindung zur Datenbank über den Datenbank über den ConnectionManagerConnectionManager
Holen von ID-WertenHolen von ID-Werten WartbarkeitWartbarkeit
VFX 9.5 - WorkshopVFX 9.5 - Workshop
IDsIDs
IDs sollten von der Datenbank vergeben IDs sollten von der Datenbank vergeben werdenwerden
CursorAdapter ermöglichen diese IDs nach CursorAdapter ermöglichen diese IDs nach dem Speichern aus der Datenbank zu holendem Speichern aus der Datenbank zu holen
InsertCmdRefreshFieldList – Liste zu holender InsertCmdRefreshFieldList – Liste zu holender FelderFelder
InsertCmdRefreshCmd – wird nach dem Insert InsertCmdRefreshCmd – wird nach dem Insert ausgeführt – Hier können IDs geholt werdenausgeführt – Hier können IDs geholt werden– GETAUTOINCVALUE() bei DBCGETAUTOINCVALUE() bei DBC
select * from <myTable> where select * from <myTable> where <IdField>=GETAUTOINCVALUE()<IdField>=GETAUTOINCVALUE()
– @@IDENTITY bei SQL Server@@IDENTITY bei SQL Server
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Connection Manager Connection Manager KlasseKlasse
Instanziierung ohne DatenanbindungInstanziierung ohne Datenanbindung Herstellen einer(!) Verbindung beim Herstellen einer(!) Verbindung beim
ersten Bedarfersten Bedarf– Auslesen der Datenbankinformationen Auslesen der Datenbankinformationen
aus einer Datei möglichaus einer Datei möglich– Eine Connection für alle Datenzugriffe Eine Connection für alle Datenzugriffe
der Anwendungder Anwendung Verwendung mehrerer Datenbanken Verwendung mehrerer Datenbanken
in einer Anwendungin einer Anwendung
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Planen einer neuen Planen einer neuen AnwendungAnwendung Nur mit CusorAdapter arbeiten!Nur mit CusorAdapter arbeiten!
– basierend auf basierend auf cBaseDataAccesscBaseDataAccess Vorteile:Vorteile:
– Es wird nur 1 Verbindung benötigtEs wird nur 1 Verbindung benötigt– Austauschbarkeit der DatenquelleAustauschbarkeit der Datenquelle– Wechsel von DBC zu SQL möglichWechsel von DBC zu SQL möglich– Entscheidung je Kunde ob DBC oder Entscheidung je Kunde ob DBC oder
SQL verwendet werden sollSQL verwendet werden soll
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Datenzugriff PraxisDatenzugriff Praxis
VFX - CursorAdapter WizardVFX - CursorAdapter Wizard Neues Formular mit dem VFX - Form Neues Formular mit dem VFX - Form
Wizard erstellenWizard erstellen TestTest UpsizingUpsizing Manage Config.vfxManage Config.vfx
VFX 9.5 - WorkshopVFX 9.5 - Workshop
CursorAdapter WizardCursorAdapter Wizard
Erstellen von CursorAdaptern zu Erstellen von CursorAdaptern zu allen Tabellen einer Datenbankallen Tabellen einer Datenbank
– für VFP-Datenbankenfür VFP-Datenbanken– für Remote-Datenbankenfür Remote-Datenbanken
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Formulare basierend auf Formulare basierend auf CursorAdapterCursorAdapter In allen VFX-Formularklassen können In allen VFX-Formularklassen können
CursorAdapter verwendet werdenCursorAdapter verwendet werden Eingabe der ParameterEingabe der Parameter
• auf dem Formularauf dem Formular
Beispiel: KundenCA.scxBeispiel: KundenCA.scx
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Kundenverwaltung mit Kundenverwaltung mit CACA CDataFormPageCDataFormPage caCustomers mit Where-KlauselcaCustomers mit Where-Klausel
customername LIKE ?customername LIKE ?thisform.tcustomernamethisform.tcustomername
VFX - CDataFormPage Builder - VFX - CDataFormPage Builder - ParameterParameter• Hinzufügen von Steuerelementen zur Hinzufügen von Steuerelementen zur
Eingabe der ParameterEingabe der Parameter• Automatisches Anlegen der Automatisches Anlegen der
FormulareigenschaftenFormulareigenschaften
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Auftragsbearbeitung mit Auftragsbearbeitung mit CACA COneToManyCOneToMany caOrders mit Where-KlauselcaOrders mit Where-Klausel
customerid=?thisform.tcustomeridcustomerid=?thisform.tcustomerid caOrderDetails mit Where-KlauselcaOrderDetails mit Where-Klausel
orderid=?caorders.orderidorderid=?caorders.orderid caOrderDetailscaOrderDetails
Foreign Key Name: orderidForeign Key Name: orderidForeign Key Value: caorders.orderidForeign Key Value: caorders.orderid
VFX – COneToMany BuilderVFX – COneToMany Builder• Parameter hinzufügenParameter hinzufügen• Automatisches Erstellen von OnPostInsert und Automatisches Erstellen von OnPostInsert und
OnChildRequery Code im ChildgridOnChildRequery Code im Childgrid
VFX 9.5 - WorkshopVFX 9.5 - Workshop
AuswahllistenAuswahllisten
KundenKunden• CPickAlternateCPickAlternate
ArtikelArtikel• CPickAlterTextboxCPickAlterTextbox
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Parent/Child mit CAParent/Child mit CA
Wie bei DBCWie bei DBC Vollständig optimierter DatenzugriffVollständig optimierter Datenzugriff Weitere Funktionen-DialogWeitere Funktionen-Dialog
• SymbolleisteSymbolleiste• MenüMenü
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Datenquellen Datenquellen bearbeitenbearbeitenManage Config.vfxManage Config.vfx Verwaltung des DatenzugriffsVerwaltung des Datenzugriffs Dialog in der Anwendung beim Dialog in der Anwendung beim
Kunden nutzbarKunden nutzbar Problemloser Wechsel zwischen DBC Problemloser Wechsel zwischen DBC
und SQL Serverund SQL Server– ConnectionString empfehlenswertConnectionString empfehlenswert
Verschlüsselung mit KennwortVerschlüsselung mit Kennwort– Einstellung mit dem Application BuilderEinstellung mit dem Application Builder– goprogram.cconfigpasswordgoprogram.cconfigpassword
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Multi-Client-SupportMulti-Client-Support
Mandantenfähige Anwendungen mitMandantenfähige Anwendungen mitRemote-Datenbanken!Remote-Datenbanken!– Datenzugriff bearbeiten – Config.vfxDatenzugriff bearbeiten – Config.vfx
Mandantenfähige Anwendungen mit Mandantenfähige Anwendungen mit DBCDBC– cDatadir="" in Vfxmain.prgcDatadir="" in Vfxmain.prg– Pfadeinstellungen in Vfxpath.dbfPfadeinstellungen in Vfxpath.dbf
Ordner "Data" beim Kunden nicht Ordner "Data" beim Kunden nicht verwendbar verwendbar
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX – Upsizing WizardVFX – Upsizing Wizard
Upsizing der vorhandenen Upsizing der vorhandenen Datenbank auf SQL ServerDatenbank auf SQL Server
VFX 9.5 - WorkshopVFX 9.5 - Workshop
TestTest
Läuft die Anwendung mit DBC undLäuft die Anwendung mit DBC undSQL Server?SQL Server?
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Drucken, Speichern als,Drucken, Speichern als,E-MailE-Mail Drucken ist aus allen Formularen Drucken ist aus allen Formularen
möglich ohne eine Berichtsdatei zu möglich ohne eine Berichtsdatei zu erstellenerstellen– Auswahl des ZeichensatzesAuswahl des Zeichensatzes– Automatische SummierungAutomatische Summierung
Unterstützung der ExportformateUnterstützung der Exportformatevon VFP 9von VFP 9– Und PDF-Export Und PDF-Export
E-Mailversand aller ExportformateE-Mailversand aller Exportformate
VFX 9.5 - WorkshopVFX 9.5 - Workshop
PDF-Export – Wie geht PDF-Export – Wie geht das?das? Ausgabe der Berichtsausgabe über Ausgabe der Berichtsausgabe über
einen Postscript-Druckertreiber in eine einen Postscript-Druckertreiber in eine DateiDatei– bei Bedarf automatische Installation eines bei Bedarf automatische Installation eines
Postscript-DruckertreibersPostscript-Druckertreibers Konvertierung der Postscript-Datei in Konvertierung der Postscript-Datei in
eine PDF-Datei mit PDFOutput.appeine PDF-Datei mit PDFOutput.app– bei Bedarf Download aus dem Internet bei Bedarf Download aus dem Internet
vollautomatisch!vollautomatisch!– ggf. wird sogar eine DFÜ-Verbindung für ggf. wird sogar eine DFÜ-Verbindung für
den Internet-Zugang angelegtden Internet-Zugang angelegt
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Internet und E-MailInternet und E-Mail
Makrosprache zum Download und Makrosprache zum Download und zur Installation von Programmen aus zur Installation von Programmen aus dem Internetdem Internet– Installation des Adobe ReaderInstallation des Adobe Reader– Aktualisierung der ApplikationAktualisierung der Applikation– bei Bedarf wird eine DFÜ-Verbindung für bei Bedarf wird eine DFÜ-Verbindung für
den Internet-Zugang angelegtden Internet-Zugang angelegt E-Mailversand aller E-Mailversand aller
Berichtsausgaben über MAPIBerichtsausgaben über MAPI
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Fax-UnterstützungFax-Unterstützung
Als weitere Option zur Als weitere Option zur BerichtsausgabeBerichtsausgabe
Unterstützte Faxprogramme:Unterstützte Faxprogramme:– AVM FRITZ!faxAVM FRITZ!fax– Symantec WinfaxSymantec Winfax
Beispiel: jedes VFX-FormularBeispiel: jedes VFX-Formular
VFX 9.5 - WorkshopVFX 9.5 - Workshop
ProduktaktivierungProduktaktivierung
VFX 9.5-Anwendungen können mit VFX 9.5-Anwendungen können mit einem Aktivierungsschlüssel einem Aktivierungsschlüssel geschützt werdengeschützt werden
Getrennter Schutz für bis zu 32 Getrennter Schutz für bis zu 32 Module einer AnwendungModule einer Anwendung
Die zur Erstellung des Die zur Erstellung des Installationsschlüssels verwendeten Installationsschlüssels verwendeten Kriterien können je Anwendung vom Kriterien können je Anwendung vom Entwickler festgelegt werdenEntwickler festgelegt werden
VFX 9.5 - WorkshopVFX 9.5 - Workshop
ProduktaktivierungProduktaktivierung
Einschalten im VFX - Application Einschalten im VFX - Application WizardWizard– 3. Options3. Options
Enable product activationEnable product activation Use „FirstInstall.txt“ fileUse „FirstInstall.txt“ file
Ändern im VFX – Application BuilderÄndern im VFX – Application Builder– Eigenschaften des AnwendungsobjektsEigenschaften des Anwendungsobjekts
goProgram.lUseActivation = .T.goProgram.lUseActivation = .T. goProgram.lActivationType= .F.goProgram.lActivationType= .F.
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Define Activation RulesDefine Activation Rules
Definition der Hardware- oder Software-Definition der Hardware- oder Software-ParameterParameter– AusdruckAusdruck– CPU NumberCPU Number– File Creation DateFile Creation Date– HDD Factory Serial NumberHDD Factory Serial Number– HDD Volume Serial NumberHDD Volume Serial Number– LAN Card NumberLAN Card Number– Registry Key ValueRegistry Key Value
je Anwendung beliebig kombinierbarje Anwendung beliebig kombinierbar Regeln speicherbarRegeln speicherbar
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Define Activation RulesDefine Activation Rules
Vergabe der RechteVergabe der Rechte bis zu 32 Einzelrechte je Anwendungbis zu 32 Einzelrechte je Anwendung jedes Recht kann unabhängig von jedes Recht kann unabhängig von
den anderen Rechten freigeschaltet den anderen Rechten freigeschaltet werdenwerden
Zugriff zur Laufzeit über Zugriff zur Laufzeit über goProgram.SecurityRights.<RechtNagoProgram.SecurityRights.<RechtName>me>
VFX 9.5 - WorkshopVFX 9.5 - Workshop
ProduktaktivierungProduktaktivierung
Eingabe des InstallationsschlüsselsEingabe des Installationsschlüssels Auswahl der freizuschaltenden RechteAuswahl der freizuschaltenden Rechte Erstellen eines AktivierungsschlüsselsErstellen eines Aktivierungsschlüssels Werte zur LaufzeitWerte zur Laufzeit
goProgram.SecurityRights.<RechtName>goProgram.SecurityRights.<RechtName>==– -1 – nicht aktiviert-1 – nicht aktiviert– 0 – nicht freigeschaltet0 – nicht freigeschaltet– 1 – freigeschaltet 1 – freigeschaltet
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Die Aktivierung aus der Die Aktivierung aus der Sicht des KundenSicht des Kunden Aufforderung zu Aktivierung beim Aufforderung zu Aktivierung beim
ProgrammstartProgrammstart– Anzeige der RegistrierungsnummerAnzeige der Registrierungsnummer– Eingabe des AktivierungsschlüsselsEingabe des Aktivierungsschlüssels
Aktivierung über das MenüAktivierung über das Menü– zum Beispiel beim Zukauf von Rechtenzum Beispiel beim Zukauf von Rechten
Übermittlung der Schlüssel per E-Übermittlung der Schlüssel per E-Mail möglichMail möglich
VFX 9.5 - WorkshopVFX 9.5 - Workshop
RegistrierungRegistrierungmit Web Servicemit Web Service Cfoxappl.ccompanynameCfoxappl.ccompanyname Cfoxappl.cappnameCfoxappl.cappname Cfoxappl.cwsdlCfoxappl.cwsdl Cfoxappl.cRegisterMethodNameCfoxappl.cRegisterMethodName Cvfxactivation.nregway=10Cvfxactivation.nregway=10
– Für Web ServiceFür Web Service
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Web ServiceWeb Service
Projekt unter VFX – KundenverwaltungProjekt unter VFX – Kundenverwaltung Web Service DLL erstellenWeb Service DLL erstellen
– Registrationwebservice.dll Registrationwebservice.dll Projekt unter AnwendungProjekt unter Anwendung DLL mit AktivierungsdatenDLL mit Aktivierungsdaten
– Register<Projektname>.dllRegister<Projektname>.dll Regdata Datenbank vorbereitenRegdata Datenbank vorbereiten Config.vfx richtig einstellenConfig.vfx richtig einstellen
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Aktualisierung von Aktualisierung von AnwendungenAnwendungen Einstellmöglichkeiten wie bei WindowsEinstellmöglichkeiten wie bei Windows
• Automatischer Download und InstallationAutomatischer Download und Installation• Automatischer DownloadAutomatischer Download• BenachrichtigenBenachrichtigen• DeaktivierenDeaktivieren• Jetzt auf Aktualisierungen prüfenJetzt auf Aktualisierungen prüfen
cFoxAppl.lAllowUpdates=.T.cFoxAppl.lAllowUpdates=.T. cFoxAppl.cIniUrlcFoxAppl.cIniUrl Vfxsys.UpdTypeVfxsys.UpdType
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Vfxsys.UpdTypeVfxsys.UpdType
1 – Automatisches herunterladen und installieren, 1 – Automatisches herunterladen und installieren, wenn Aktualisierungen vorhanden sind. Die wenn Aktualisierungen vorhanden sind. Die Überprüfung wird beim ersten Anwendungsstart Überprüfung wird beim ersten Anwendungsstart täglich durchgeführt.täglich durchgeführt.
2 – Automatisches herunterladen von Aktualisierungen 2 – Automatisches herunterladen von Aktualisierungen mit anschließender Frage, ob die Aktualisierung mit anschließender Frage, ob die Aktualisierung installiert werden soll. Die Überprüfung wird beim installiert werden soll. Die Überprüfung wird beim ersten Anwendungsstart täglich durchgeführt.ersten Anwendungsstart täglich durchgeführt.
3 – Überprüfung nach verfügbaren Aktualisierungen 3 – Überprüfung nach verfügbaren Aktualisierungen täglich beim ersten Anwendungsstart. Bei vorhandener täglich beim ersten Anwendungsstart. Bei vorhandener aktualisierter Programmversion wird der Benutzer aktualisierter Programmversion wird der Benutzer gefragt, ob er die Aktualisierung herunterladen und gefragt, ob er die Aktualisierung herunterladen und installieren will.installieren will.
4 – Manuelle Überprüfung. Die Überprüfung auf 4 – Manuelle Überprüfung. Die Überprüfung auf Aktualisierungen kann aus dem Menü aufgerufen Aktualisierungen kann aus dem Menü aufgerufen werden.werden.
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Vfxsys.UpdateAppVfxsys.UpdateApp
D: ftp://<domain>/meineExeDatei.vfxD: ftp://<domain>/meineExeDatei.vfxoderoderD: D: http://<domain>/meineExeDatei.vfxhttp://<domain>/meineExeDatei.vfxwird in SYS(2023)-Ordner gespeichertwird in SYS(2023)-Ordner gespeichert
Austausch der laufenden Exe-Datei Austausch der laufenden Exe-Datei mittels Loader.exemittels Loader.exe
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Aktualisierung der Aktualisierung der Datenbank beim KundenDatenbank beim Kunden Aktualisierung von allen in Config.vfx Aktualisierung von allen in Config.vfx
eingetragenen Datenbankeneingetragenen Datenbanken• DBCDBC• SQLSQL
VFX 9.5 - WorkshopVFX 9.5 - Workshop
FehlerbehandlungFehlerbehandlung
Anzeige von Laufzeitfehlern in Anzeige von Laufzeitfehlern in bekannten Windows-Dialogen <g>bekannten Windows-Dialogen <g>
Akzeptanz durch BenutzerAkzeptanz durch Benutzer
Fehlerberichte können per E-Mail an Fehlerberichte können per E-Mail an den Entwickler gesendet werdenden Entwickler gesendet werden
VFX 9.5 - WorkshopVFX 9.5 - Workshop
FehlerbehandlungFehlerbehandlung
Was soll passieren, wenn ein Fehler auftritt?Was soll passieren, wenn ein Fehler auftritt?– goProgram.nAppOnErrorBehavior=goProgram.nAppOnErrorBehavior=
0 – alle Fehler ignorieren0 – alle Fehler ignorieren 1 – Anzeige einer Fehlermeldung (Standardwert)1 – Anzeige einer Fehlermeldung (Standardwert) 2 - Programmabbruch2 - Programmabbruch
Welche Fehlerinformationen werden protokolliert?Welche Fehlerinformationen werden protokolliert?– goProgram.ErrorDetailLevel=goProgram.ErrorDetailLevel=
0 – nur die Fehlermeldung0 – nur die Fehlermeldung 1 – Fehlermeldung und Aufrufstapel (Standardwert)1 – Fehlermeldung und Aufrufstapel (Standardwert) 2 – detaillierte Fehlerinformationen2 – detaillierte Fehlerinformationen
(Standardverhalten bis VFX 7.1) (Standardverhalten bis VFX 7.1)
Versand des Fehlerprotokolls per E-MailVersand des Fehlerprotokolls per E-Mail– goProgram.csupportemailgoProgram.csupportemail
VFX 9.5 - WorkshopVFX 9.5 - Workshop
HooksHooks
Einschalten in Vfxmain.prgEinschalten in Vfxmain.prg nEnableHook=1 Enabled, 2 Disabled, 0 nEnableHook=1 Enabled, 2 Disabled, 0
Use form settingUse form setting Rückgabewerte steuern das VerhaltenRückgabewerte steuern das Verhalten
– .T..T.Ausführung fortsetzenAusführung fortsetzen
– 0 oder .F.0 oder .F.Ausführung abbrechen, Rückgabewert .T.Ausführung abbrechen, Rückgabewert .T.
– 11Ausführung abbrechen, Rückgabewert .F.Ausführung abbrechen, Rückgabewert .F.
VFX 9.5 - WorkshopVFX 9.5 - Workshop
HooksHooks
FUNCTION eventhookhandler(tcevent, toobject, toform)FUNCTION eventhookhandler(tcevent, toobject, toform)LOCAL lcontinueLOCAL lcontinuelcontinue = .T.lcontinue = .T.DO CASEDO CASECASE UPPER(tcevent)=="INIT"CASE UPPER(tcevent)=="INIT"DO CASEDO CASECASE UPPER(toobject.baseclass)=="GRID"CASE UPPER(toobject.baseclass)=="GRID"toobject.allowrowsizing=.F.toobject.allowrowsizing=.F.toobject.allowheadersizing=.F.toobject.allowheadersizing=.F.
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Update Project WizardUpdate Project Wizard
Vollautomatische Aktualisierung Vollautomatische Aktualisierung bestehenderbestehenderVFX-AnwendungenVFX-Anwendungen
Aktualisierung auf den neuesten VFX Aktualisierung auf den neuesten VFX BuildBuild
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Weitere Features für Weitere Features für EntwicklerEntwickler Task PanesTask Panes
– VFX 9.5VFX 9.5– VFX-CommunityVFX-Community
Viele neue Wizards und BuilderViele neue Wizards und Builder– Project Update WizardProject Update Wizard– Application BuilderApplication Builder– CursorAdapter WizardCursorAdapter Wizard– Parent/Child BuilderParent/Child Builder– Audit Trigger WizardAudit Trigger Wizard– Project DocumentingProject Documenting
VFX 9.5 - WorkshopVFX 9.5 - Workshop
BenutzerverwaltungBenutzerverwaltung
Verwaltung von Benutzergruppen Verwaltung von Benutzergruppen mit Rechtenmit Rechten
Protokolle und Sichten für aktiv Protokolle und Sichten für aktiv eingeloggte Anwender (für exklusive eingeloggte Anwender (für exklusive Tasks) Tasks)
VFX 9.5 - WorkshopVFX 9.5 - Workshop
SuchdialogSuchdialog
Beliebig viele Filterbedingungen Beliebig viele Filterbedingungen kombinierbarkombinierbar
Einstellungen je Formular und Einstellungen je Formular und Benutzer gespeichertBenutzer gespeichert
Nur sinnvolle OperatorenNur sinnvolle Operatoren Keine ungültigen Eingaben möglichKeine ungültigen Eingaben möglich
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Datum und ZeitDatum und Zeit
neuer Kalenderneuer Kalender– basierend auf MonthView Controlbasierend auf MonthView Control– keine OCX-Installation erforderlichkeine OCX-Installation erforderlich
Hotkeys zur DatumsauswahlHotkeys zur Datumsauswahl– H – heuteH – heute– A – Anfang des JahresA – Anfang des Jahres– B – Beginn des MonatsB – Beginn des Monats– +/- - 1 Tag vorwärts oder zurück+/- - 1 Tag vorwärts oder zurück
Eingabe von Datetime-WertenEingabe von Datetime-Werten
VFX 9.5 - WorkshopVFX 9.5 - Workshop
OLE drag & dropOLE drag & drop
Vollständig generisch in VFX integriertVollständig generisch in VFX integriert– aus einem Steuerelementaus einem Steuerelement
nOLEenabledrag=1nOLEenabledrag=1 nOLEdropForceEditmode=1nOLEdropForceEditmode=1
– aus einer Seite eines Seitenrahmens unter aus einer Seite eines Seitenrahmens unter Berücksichtigung der TaborderBerücksichtigung der Taborder
nPageOLEdragdrop=1nPageOLEdragdrop=1
– aus einem Gridaus einem Grid immer eingeschaltetimmer eingeschaltet
Unterstützung aller DatentypenUnterstützung aller Datentypen
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Einstellung der Sprache Einstellung der Sprache zur Laufzeitzur Laufzeit Runtime LocalizationRuntime Localization Im AnmeldedialogIm Anmeldedialog In einer Combobox in der In einer Combobox in der
SymbolleisteSymbolleiste
Beispiel: VFPizza und VFX95TradersBeispiel: VFPizza und VFX95Traders
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Datensicherung mit ZIP-Datensicherung mit ZIP-FunktionFunktion ZIP-Algorithmus in VFX 9.5 integriertZIP-Algorithmus in VFX 9.5 integriert Datensicherung der aktuellen Datensicherung der aktuellen
Datenbank in eine Zip-Datei über Datenbank in eine Zip-Datei über einen Menüpunkteinen Menüpunkt
Wiederherstellung der aktuellen Wiederherstellung der aktuellen Datenbank aus einer Zip-Datei über Datenbank aus einer Zip-Datei über einen Menüpunkteinen Menüpunkt
direkter Aufruf der ZIP-Funktionendirekter Aufruf der ZIP-Funktionenfür eigene Anwendungen möglichfür eigene Anwendungen möglich
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX.fllVFX.fll
Internet, E-Mail und HilfsfunktionenInternet, E-Mail und Hilfsfunktionen ProduktaktivierungProduktaktivierung DatensicherungDatensicherung SQL ServerSQL Server Achtung: Achtung: Die VFX.fll muss an den Die VFX.fll muss an den
Kunden mitgeliefert werden!Kunden mitgeliefert werden!
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX-Menü-DesignerVFX-Menü-Designer
WYSIWYGWYSIWYG Unterstützung aller Menü-Features, Unterstützung aller Menü-Features,
die VFP bietetdie VFP bietet– Schriftartattribute, EffekteSchriftartattribute, Effekte– alle Eventsalle Events– Menüeinträge mit MarkierungMenüeinträge mit Markierung
Unterstützung von KonstantenUnterstützung von Konstanten– sprachunabhängige Menüssprachunabhängige Menüs
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Wichtige VFX-MethodenWichtige VFX-Methoden
Valid auf FormularebeneValid auf Formularebene OnRecordMoveOnRecordMove OnPostInsertOnPostInsert OnSaveOnSave OnPrintOnPrint OnPrev, OnNext, OnTop, OnBottomOnPrev, OnNext, OnTop, OnBottom
VFX 9.5 - WorkshopVFX 9.5 - Workshop
DokumentenverwaltungDokumentenverwaltung
Container-Klasse zur Verwaltung von Container-Klasse zur Verwaltung von DokumentenDokumenten– Per Drag & Drop auf jedem Formular Per Drag & Drop auf jedem Formular
einsetzbareinsetzbar– Einfache KonfigurationEinfache Konfiguration– Dokumente sind „Children“Dokumente sind „Children“
Beispiel: Parent.scx in VFX95TestBeispiel: Parent.scx in VFX95Test
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Audit-TrailAudit-Trail
Neuer Trigger Wizard!Neuer Trigger Wizard! Trigger in den TabellenTrigger in den Tabellen
– _audit_insert()_audit_insert()– _audit_update()_audit_update()– _audit_delete()_audit_delete()
Anzeige des Protokolls über ein VFX-Anzeige des Protokolls über ein VFX-FormularFormular
Und-Verknüpfung mit anderen Und-Verknüpfung mit anderen Triggern möglichTriggern möglich
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Was noch?Was noch?
Integriertes Werkzeug für die Integriertes Werkzeug für die DatenbankreparaturDatenbankreparatur
Konfigurieren einer DFÜ-Konfigurieren einer DFÜ-NetzwerkverbindungNetzwerkverbindung– Define DUN connection parametersDefine DUN connection parameters
Integration eines FernwartungsprogrammsIntegration eines Fernwartungsprogramms Automatische Installation des Abobe Automatische Installation des Abobe
Reader beim KundenReader beim Kunden Und vieles mehr… Und vieles mehr…
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Wir haben das Ziel Wir haben das Ziel erreicht!erreicht! Die Anwendung ist fertig.Die Anwendung ist fertig. Kompletter Rahmen durch VFX Kompletter Rahmen durch VFX
erstellterstellt Datenbank mit üblichen Tools erstelltDatenbank mit üblichen Tools erstellt Formulare mit den VFX Buildern Formulare mit den VFX Buildern
erstellterstellt Bearbeitung mit VFP zu jeder ZeitBearbeitung mit VFP zu jeder Zeit Hohe Qualität = zufriedene KundenHohe Qualität = zufriedene Kunden
VFX 9.5 - WorkshopVFX 9.5 - Workshop
LokalisierungLokalisierung
VFX – Language Management BuilderVFX – Language Management Builder• Auswahl der Sprachen bei Lokalisierung Auswahl der Sprachen bei Lokalisierung
zur Laufzeitzur Laufzeit VFX – Langsetup BuilderVFX – Langsetup Builder
• Unterstützung von KlassenUnterstützung von Klassen• Unterstützung von BerichtenUnterstützung von Berichten• Unterstützung von Vfxfopen.dbfUnterstützung von Vfxfopen.dbf
Rekursiver Aufruf der LangSetup-Rekursiver Aufruf der LangSetup-Methode in allen SteuerelementenMethode in allen Steuerelementen
VFX 9.5 - WorkshopVFX 9.5 - Workshop
FragenFragen
??
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX95TestVFX95Test
BenutzergruppenBenutzergruppen Dokument-ContainerDokument-Container COneToManyPageFrameCOneToManyPageFrame Geschäftsgrafiken mit Geschäftsgrafiken mit
CBusinessGraphCBusinessGraph Menü ExtrasMenü Extras
VFX 9.5 - WorkshopVFX 9.5 - Workshop
VFX95TradersVFX95Traders
Basierend auf Tastrade.dbcBasierend auf Tastrade.dbc Office CompatibleOffice Compatible Drucken, Speichern, E-Mailversand, FaxDrucken, Speichern, E-Mailversand, Fax 1:n Formulare mit Auswahllisten1:n Formulare mit Auswahllisten ProduktaktivierungProduktaktivierung Aktualisierung der Anwendung über das Aktualisierung der Anwendung über das
InternetInternet– Kundenverwaltung, VersionsverwaltungKundenverwaltung, Versionsverwaltung
FernwartungFernwartung
VFX 9.5 - WorkshopVFX 9.5 - Workshop
LinksLinks
Download und Infos zu VFX: Download und Infos zu VFX: – www.visualextend.dewww.visualextend.de– portal.dfpug.de, Reiter/Verzeichnis VFXportal.dfpug.de, Reiter/Verzeichnis VFX
Mehr Infos zu VFX: Mehr Infos zu VFX: – www.my-vfx.dewww.my-vfx.de
Kostenloser Support zu VFX:Kostenloser Support zu VFX:– news.dfpug.de / forum.dfpug.denews.dfpug.de / forum.dfpug.de
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Vielen Dank für Euer Vielen Dank für Euer Interesse!Interesse!
Viel Spaß mit VFX 9.5 wünschtViel Spaß mit VFX 9.5 wünscht
Uwe HabermannUwe Habermann
VFX 9.5 - WorkshopVFX 9.5 - Workshop
Pause!Pause!