Uwe Habermann V-VFX Was ist neu in VFX? Nicht nur für VFX-Entwickler!
Habermann Consulting EOOD * Neue Firma – neues Glück * Geschäftsführer: Uwe Habermann * * * Individualsoftware * Branchensoftware * Entwicklungsumgebungen * Entwicklung in Varna, Bulgarien * Hohe Qualität zu günstigen Preisen
Die Angst vor der Zukunft * Support für VFP endete am * Dadurch keine Möglichkeit mehr VFP Lizenzen zu erwerben * Trotzdem neue VFP Projekte * Umfangreiche Weiterentwicklungen * Redesign
Die Freude auf die Zukunft * VFX wird weiterentwickelt * Support für VFX geht weiter * VFX kann auch weiterhin erworben werden
Was ist neu? * VFX 16 Build 1105 * Vollversion 1106 * Gültiges Abo * Gleiche adresse * Gleiches Kennwort * -> unbefristeter Aktivierungsschlüssel * -> Berechtigung für Update auf Vollversion
Hilfedatei für VFP * VFP 9 SP 2 gefixte Hilfedatei * Wird in VFX160\Builder installiert
VFX – Builder * Resizable
VFX – Pick Builder * Auswahl der Felder für den Pickdialog * Mover * Vorschlag für * Bezeichnungen * Feldbreiten
Berichtsvorlagen * Vorlagen für Grid Reports * goUser.mRepPermit = 1 * goUser.UserLevel = 1
CheckSMB * Rückgabewert.T. – alles ist gut * Prüfung wenn * Datenbank auf Netzlaufwerk * Ab Windows Vista
DelDirectory * Löscht jetzt auch Unterordner rekursiv
Vfx Details * Neuer Parameter für getrennte Übergabe von Betreff und Text
VfxToolsBase.vcx * Neue Klassenbibliothek * Vfxtools.vcx * 1:1 Ableitungen für Entwickler
VFX – Cursoradapter Wizard * Anzeige geschützter Schlüsselwörter * Optimierung für Zieldatenbank * Fremdschlüsselfelder werden immer in ReplaceWhenNULL eingetragen
VFX – Installation Wizard * Erstellt Exe-Datei * Stellt leere Datenbank bereit * Kopiert alle erforderlichen Dateien in Ordner Install * Kopiert FoxTools.fll wenn verwendet * Einschließlich VFP Laufzeitumgebung
VFX – Installation Wizard * MSComctl.ocx * Treeview, ImageList (Favoriten) * MSComct2.ocx * Kalender * MSMAPI32.ocx * versand * MSCHRT20.ocx * Geschäftsgrafiken
OneToManyToMany * Neue Formularklasse * VFX – cOneToManyToMany Builder * Unterstützung von * Tabellen * Cursoradaptern * Intuitive Erstellung, wie bei allen VFX Formularen
OneToManyToMany * VFX – Form Wizard * Datenumgebung * VFX – cOneToManyToMany Builder * Parent-Seite * Child-Seite * Grandchild-Seite * Demo
OneToManyToMany * Beispiele in VFPizza * Basierend auf DBF * Basierend auf CA * Generische Berichte
OnrecordmoveRefresh und Onrecordmove * Beim Bewegen des Satzzeigers im Parent- Teil eines 1:n Formulars müssen die Child-Daten nachgeladen werden * Onrecordmove wird bei jeder Bewegung eines Parent-Datensatzes ausgeführt * OnrecordmoveRefresh wird zeitverzögert ausgeführt * nRecordMoveRefreshtimeout
cPickDate * Neue Eigenschaft Value des Containers * Hotkeys werden bei Sprachwechsel zur Laufzeit jetzt lokalisiert
versenden * Mit MAPI * MSMAPI32.ocx muss registriert sein * Zum Beispiel mit Outlook
versenden * MSMAPI32.ocx * Viele programme * VfpExMapi.fll * Keine Sicherheitswarnungen von Outlook
versenden LOCAL lo lo =NEWOBJECT("c ") lo .addfileattachment("full path to file") lo .send_ _report(" address","subject","body text") RELEASE lo
PDF * LibHPDF * Kein Konflikt mit Amyuni * Kein Konflikt mit Adobe * Unterstützung von mehr Schriftarten
cPickDialogPara Cpickwhereclause * Beispiel in VFPizza: OrdersCA.scx * Demo * cntCustomerid.cPickForm = 'VFXPICKPARA' * caOrders.Cpickwhereclause = 'CustomerName LIKE ?tcPara'
Felder für Suchdialog angeben * Formularmethode onsearch * LPARAMETERS tofieldlist * IF TYPE("tofieldlist")#"O" AND !ISNULL(tofieldlist) * tofieldlist=CREATEOBJECT("cFieldlist") * tofieldlist.ctablelist="" * tofieldlist.addcontrolsource("customers.customername","Kundenname") * tofieldlist.addcontrolsource("customers.contactperson","Ansprechpartner" ) * * Add as many columns as needed. * ENDIF * RETURN DODEFAULT(tofieldlist) * Demo
Datumsformat einstellen * Ohne Lokalisierung zur Laufzeit * Applfunc.prg – FormSetup() * SET DATE ANSI * Bei Lokalisierung zur Laufzeit * thisform.langsetup() * thisform.onsetenv() * DODEFAULT() * SET DATE ANSI * Demo
Einfügeformular * Formular startet im Einfügemodus * Thisform.lInsertOnly =.T. * Released nach dem Speichern * Code in onSave() nach dem Dodefault() wird nicht ausgeführt * Ggf. in onPostSave() verschieben * Demo
Aktualisierung der Exe-Datei * VFX – Application Builder * Seite "Application Behavior" * "Allow exe update via Internet" * VfxSys.dbf – UpdateApp * URL zur neuen Exe-Datei * Beispiel: D:
Aktualisierung der Exe-Datei * Appl.vcx * cAppUpdateEngine.cIniUrl * Datei an dieser URL enthält neue Versionsnummer * Beispiel: * Wenn cAppUpdateEngine.cIniUrl leer ist, wird die Exe-Datei in jedem Fall heruntergeladen
Aktualisierung der Exe-Datei * Download und Aktualisierung wenn Versionsnummer in Ini-Datei größer als Versionsnummer in VfxSys.Appversion ist * Loader.exe muss im Exe-Ordner vorhanden sein!
Lokalisierung * Zur Entwicklungszeit * Texte werden aus Include-Dateien gelesen * Für jede Sprache muss eine Exe-Datei erstellt werden * Zur Laufzeit * Texte werden aus Vfxmsg.dbf gelesen * Vfxmsg.dbf kann in Exe-Datei eingeschlossen werden * Sprachumschaltung zur Laufzeit möglich
Lokalisierung * VFX – Language Management * VFX – Langsetup Builder
VFX – Language Management * Deaktivieren nicht benötigter Sprachen * Löschen nicht benötigter Texte * Verkleinert die Tabelle und damit die Exe-Datei * FontCharSet * Kompatibilität mit Codepage
VFX – Langsetup Builder * Lokalisierung von * Formularen * Berichten * Öffnen-Dialog * Generiert Code in Methode LangSetup * Ausgeführt bei * Formularstart * Sprachwechsel * Fügt Datensätze in Vfxmsg hinzu
Maintenance Timer * Nicht in der Entwicklungsumgebung * Nur in der Exe-Datei berücksichtigt * Kein Start möglich, solange Wartungsdatei existiert
Maintenance Timer * VFX – Application Builder * Maintenance Timer Interval * Prüfung auf Wartungsdatei * Maintenance Timeout * Restzeit für den Benutzer * Maintenance application termination message timeout * Anzeigedauer der Meldung * Name of maintenance file * Wartungsdateiname
RTF Bericht drucken * Beispiel in VFX15Test, ParentRTF.frx * Rechteck * Eigenschaften, Other, Edit comment... * '*:RTF' * Speichern * USE report\ParentRTF.frx * BROWSE FOR comment = '*:RTF' * REPLACE style with
VFX – Document Container * Volltextsuche * Allow search in document content * lAllowSearchInDocContent =.T. * Unterstützte Dokumenttypen * DOC und DOCX (Word) * TXT * MSG ( ) * RTF * Outlook Aufgaben, Kontakte, s
VFX – Document Container * Textbox für Volltextsuche * Schaltfläche Suche * Schaltfläche Aktualisieren * Aktualisieren liest alle Dokumentinhalte erneut * Dokumentinhalte in VfxRtf.dbf
Excel Tabs * VFX – Application Builder * Standardwerte für Farben
Reporting Fixes * Aktuelle Codeplex Quellen * Vollständig überarbeitet * Auch VfxModifyReport * “This release fixes a bug in ReportOutput.app and ReportBuilder.app that didn't handle higher DPI displays properly (thanks to Joel Leach)” * Verbesserung des Layouts von Dialogen * SET TALK OFF
VFX – Upsizing Wizard * Ständige Weiterentwicklung! * Standardmäßig wird der neueste SQL Treiber verwendet * Neue Namensgebung für Constraints _ _ * Wizard kann nicht mehr mit ESC geschlossen werden
VFX – Upsizing Wizard * Upsizing von Zeichenfeldern zu nvarchar oder nchar * Vermeidung von Fehlern bei BULK INSERT * Constraints für Fremdschlüssel werden nicht generiert, wenn alle RI Regeln auf ignorieren stehen
VFX – Upsizing Wizard * Keine Unterstützung von SQL Server 7 (1998/1999) mehr * Kleine Fixes bei BulkInsert * Fortschrittsanzeige bei JimExport
VFX – Upsizing Wizard * BulkInsert * Einfügen aus generierter Textdatei * Sehr schnell * FastExport * Generiert Stored Procedures * JimExport * Insert Befehl je Datensatz * Langsam, aber Unicode-Unterstützung und geht immer
VFX – Upsizing Wizard * Unicode-Unterstützung * Je Datensatz(!) anderer Zeichensatz möglich * Westlich * Kyrillisch * Griechisch usw. * SQL Server Feldtyp nVarchar * DBC Feld Fontcharset
VFX – Upsizing Wizard * Seite 4 * FontCharSet Field * Seite 5 * Do not use bulk insert for fast data upload * Bulk insert unterstützt kein Unicode * Neu: Unicode Conversion
Vielen Dank! Uwe Habermann