Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierung FPW 2.6->VFPKonvertierung FPW 2.6->VFP
Konvertierung von FoxPro / Konvertierung von FoxPro / Windows Anwendungen nachWindows Anwendungen nach
Microsoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Diese Schulung dient der Übersicht über die
Konvertierungsarten und -möglichkeiten von Applikationen
unter FoxPro/Windows nach Microsoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
ThemenübersichtThemenübersicht
Fallstudie aus der PraxisFallstudie aus der Praxis VorüberlegungenVorüberlegungen KonvertierungsansätzeKonvertierungsansätze Minimalistische KonvertierungMinimalistische Konvertierung Hybrider AnsatzHybrider Ansatz Konvertierung BerichteKonvertierung Berichte KonvertierungsassistentKonvertierungsassistent Funktionale KonvertierungFunktionale Konvertierung MaskeneigenschaftenMaskeneigenschaften Nachbearbeitung von MaskenNachbearbeitung von Masken FPW-Wrapper-KlassenFPW-Wrapper-Klassen
Wizards & Wizards & Builders GmbH Builders GmbH
Fallstudie aus der PraxisFallstudie aus der Praxis
Vollständige Konvertierung Vollständige Konvertierung der FPD-Software „Account der FPD-Software „Account View“ nach Microsoft Visual View“ nach Microsoft Visual
FoxProFoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Account View AnwendungAccount View Anwendung
Buchhaltungssoftware in FPD 2.6Buchhaltungssoftware in FPD 2.6 4000 Kunden in 3 Ländern4000 Kunden in 3 Ländern 70 % haben Netzwerklizenzen70 % haben Netzwerklizenzen Beispiele Anwender:Beispiele Anwender:
Royal Dutch ConcertgebouwRoyal Dutch Concertgebouw Pulitzer Hotel (350 Betten)Pulitzer Hotel (350 Betten) Den Hague Police RegionDen Hague Police Region PTT Catering (360 Gebäude)PTT Catering (360 Gebäude) Allianz Europa (SAP + AV)Allianz Europa (SAP + AV)
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierungs-ZieleKonvertierungs-Ziele
1. Zuverlässigkeit1. Zuverlässigkeit
2. Zuverlässigkeit2. Zuverlässigkeit
3. Zuverlässigkeit3. Zuverlässigkeit
4. Anforderungen Windows95 Logo 4. Anforderungen Windows95 Logo
5. Möglichst gleiche Geschwindigkeit5. Möglichst gleiche Geschwindigkeit
bei der Datenerfassung wie bei der Datenerfassung wie FP/DOSFP/DOS
6. Erhaltung der Flexibilität für VARs6. Erhaltung der Flexibilität für VARs
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierungs-PlanungKonvertierungs-Planung
Die Wirklichkeit ist anders als die DemosDie Wirklichkeit ist anders als die Demos In Wirklichkeit wurde die komplexe In Wirklichkeit wurde die komplexe
Funktionalität langsam und inkrementell Funktionalität langsam und inkrementell entwickeltentwickelt
Wie lange dauerte es (wirklich) bis die Wie lange dauerte es (wirklich) bis die Anwendung auf dem heutigen Stand Anwendung auf dem heutigen Stand war?war?
Wie hoch schätzt man Zeit und Kosten Wie hoch schätzt man Zeit und Kosten für Migrationfür Migration
Zuerst kalkulieren!Zuerst kalkulieren!
Wizards & Wizards & Builders GmbH Builders GmbH
Object type Quantity Time TotalList display forms 139 1,5 208,5Setup information forms 72 3,0 216,0One to many forms 6 32,0 192,0Dialog forms 238 0,5 119,0Reports 270 2,0 540,0Procedures/functions 997 0,1 99,7Tables 80 0,5 40,0Menus 98 0,5 49,0"Framework" programs 1 160,0 160,0Installation program 1 80,0 80,0Documentation facelift 1 455,0 455,0Testing 1 1.450,0 1.450,0
Total hours 3.609,2Developer days 451,2Developer weeks 112,8Total development weeks 37,6Total cost 203.017,5
Wizards & Wizards & Builders GmbH Builders GmbH
ImplikationenImplikationen
Kosten von ca. DM 200,000 (mind.!)Kosten von ca. DM 200,000 (mind.!) Kaufen aller verfügb. Bücher zu VFPKaufen aller verfügb. Bücher zu VFP MCP-Test für alle TeammitgliederMCP-Test für alle Teammitglieder Kaufen sämtlicher auch nur Kaufen sämtlicher auch nur
ansatzweise sinnvoller Werkzeugeansatzweise sinnvoller Werkzeuge Kein Geld an der Kein Geld an der
Vorbereitung(szeit) sparen! Vorbereitung(szeit) sparen! Unterstützung der GL einholenUnterstützung der GL einholen
Wizards & Wizards & Builders GmbH Builders GmbH
Vorschläge zur Vorschläge zur VorgehensweiseVorgehensweise
Selbst erstellen oder Kauf eines Selbst erstellen oder Kauf eines fertigen Applikations-Frameworks fertigen Applikations-Frameworks mit Basisklassen und mit Basisklassen und FertigobjektenFertigobjekten
Testweise manuelle Erstellung von Testweise manuelle Erstellung von einigen Masken, Berichten und einigen Masken, Berichten und MenüsMenüs
Probeweise Konvertierung Probeweise Konvertierung bestehender Dateienbestehender Dateien
Wizards & Wizards & Builders GmbH Builders GmbH
Einsatz von FrameworksEinsatz von Frameworks
Notwendig und nicht migrierbarNotwendig und nicht migrierbar Einige Möglichkeiten:Einige Möglichkeiten:
Codebook 3 (Flash - Griver)Codebook 3 (Flash - Griver) X3 Framework (MaxTech - Drew Speedie)X3 Framework (MaxTech - Drew Speedie) VFP Frame (ABL)VFP Frame (ABL)
Negativ:Negativ: Sind notwendigerweise sehr komplexSind notwendigerweise sehr komplex Werden hauptsächlich von Firmen verkauft, Werden hauptsächlich von Firmen verkauft,
deren Schwerpunkt im Bereich Beratung, deren Schwerpunkt im Bereich Beratung, Coaching und Support liegtCoaching und Support liegt
Wizards & Wizards & Builders GmbH Builders GmbH
KonvertierungsarbeitKonvertierungsarbeit
MaskenMasken FunctionalFunctional VisualVisual CustomCustom
MenüsMenüs Berichte (Problem: breite Berichte)Berichte (Problem: breite Berichte) DatenbankenDatenbanken
Datenbankcontainer, Private Datasessions, Datenbankcontainer, Private Datasessions, keine Views, keine Rules/Triggerkeine Views, keine Rules/Trigger
Wizards & Wizards & Builders GmbH Builders GmbH
UnterstützungUnterstützung
1. Online Hilfe1. Online Hilfe
2. Online Dokumentation2. Online Dokumentation
3. „Mastering Visual FoxPro“-CD (Migration CD)3. „Mastering Visual FoxPro“-CD (Migration CD)
4. Knowledge base auf den TechNet-CDs4. Knowledge base auf den TechNet-CDs
5. VFOX/dFPUG-Forum auf Compuserve!5. VFOX/dFPUG-Forum auf Compuserve!
6. Microsoft FoxPro Site im Internet6. Microsoft FoxPro Site im Internet
7. Bücher über Visual FoxPro7. Bücher über Visual FoxPro
8. Alte Ausgaben des „FoxPro Advisor“ (ggf. CD)8. Alte Ausgaben des „FoxPro Advisor“ (ggf. CD)
9. Bekannte, Eltern und Verwandte9. Bekannte, Eltern und Verwandte
10. Microsoft Support10. Microsoft Support
Wizards & Wizards & Builders GmbH Builders GmbH
Zusammenfassung FallstudieZusammenfassung Fallstudie
HINWEIS: Es warHINWEIS: Es war
FOXPRO / DOS !!!FOXPRO / DOS !!!
Die positive Seite: Die positive Seite: 75% der Applikation 75% der Applikation konnten konnten unverändert unverändert übernommen übernommen werdenwerden
VFP ist das Ticket VFP ist das Ticket zu „state-of-the-zu „state-of-the-art“-Anwendugnen art“-Anwendugnen bis ins nächste bis ins nächste Jahrhundert!Jahrhundert!
Wizards & Wizards & Builders GmbH Builders GmbH
VorüberlegungenVorüberlegungen
Grundsatzüberlegungen zur Grundsatzüberlegungen zur Konvertierung nachKonvertierung nach
Microsoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Visual FoxProVisual FoxPro
„„State of the art“-Datenbank-State of the art“-Datenbank-ApplikationenApplikationen
32bit-Windows-Unterstützung32bit-Windows-Unterstützung Client/Server-ConnectivityClient/Server-Connectivity ObjektorientierungObjektorientierung Umfangreiches DebuggingUmfangreiches Debugging Multi-Tier/Internet-Applikationen Multi-Tier/Internet-Applikationen
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertieren vs. Konvertieren vs. NeuschreibenNeuschreiben
Die bestehende AnwendungDie bestehende Anwendung hat mehrere Versionen durchlaufen?hat mehrere Versionen durchlaufen? ist stabil?ist stabil? benötigt keine neue Funktionalität?benötigt keine neue Funktionalität? läuft nicht auf neuen Betriebssystemen?läuft nicht auf neuen Betriebssystemen?
Die Entwickler habenDie Entwickler haben die Möglichkeit, OOP kennenzuleren oderdie Möglichkeit, OOP kennenzuleren oder keine Zeit für neue Entwicklungsmethoden?keine Zeit für neue Entwicklungsmethoden?
Wizards & Wizards & Builders GmbH Builders GmbH
Grundsatzüberlegungen (1)Grundsatzüberlegungen (1)
Wurden die Werkzeuge verwendet?Wurden die Werkzeuge verwendet? Falls nein: minimalistisch oder neu schreibenFalls nein: minimalistisch oder neu schreiben
Werden FLLs eingesetzt?Werden FLLs eingesetzt? Neu kompilieren unter 32Bit notwendigNeu kompilieren unter 32Bit notwendig
Werden Third-Party-Tools Werden Third-Party-Tools eingesetzt?eingesetzt? Funktionalität evtl. in VFP bereits eingebautFunktionalität evtl. in VFP bereits eingebaut Andernfalls neue Version notwendig - ist diese Andernfalls neue Version notwendig - ist diese
lieferbar und erfordert ggf. Konvertierunglieferbar und erfordert ggf. Konvertierung
Wizards & Wizards & Builders GmbH Builders GmbH
Grundsatzüberlegungen (2)Grundsatzüberlegungen (2)
Multi-Plattform-fähige Anwendung?Multi-Plattform-fähige Anwendung? Unterstützt: Windows 95 ff., Windows NTUnterstützt: Windows 95 ff., Windows NT Plattformfähigkeit weiterhin notwendig?Plattformfähigkeit weiterhin notwendig? Umsetzung über Internet-Browser?Umsetzung über Internet-Browser?
Upgrade auf Windows95-GUI ?Upgrade auf Windows95-GUI ? Minimalitische Umsetzung nicht möglich..Minimalitische Umsetzung nicht möglich..
Wizards & Wizards & Builders GmbH Builders GmbH
KonvertierungsansätzeKonvertierungsansätze
Verschiedene Verschiedene Konvertierungsansätze von Konvertierungsansätze von
FoxPro/Win nachFoxPro/Win nachMicrosoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Minimalistischer AnsatzMinimalistischer Ansatz
Vorteile:Vorteile: Geringster Geringster
AufwandAufwand Keine weitere Keine weitere
Entwicklungszeit Entwicklungszeit oder oder Entwicklungs- Entwicklungs- bzw. Lernaufwandbzw. Lernaufwand
Nachteile:Nachteile: Keine Nutzung des Keine Nutzung des
EreignismodellsEreignismodells Keine Nutzung des Keine Nutzung des
ObjektmodellsObjektmodells Altes Altes
UserinterfaceUserinterface Im Vergleich hohe Im Vergleich hohe
WartungskostenWartungskosten
Wizards & Wizards & Builders GmbH Builders GmbH
Hybrider AnsatzHybrider Ansatz
Vorteile:Vorteile: Alter Code Alter Code
weiterverwendbarweiterverwendbar EreignismodellEreignismodell Teilweise Objekt-Teilweise Objekt-
modell nutzbarmodell nutzbar Neue FunktionenNeue Funktionen User-InterfaceUser-Interface
Nachteile:Nachteile: Gemischte Gemischte
Programmierung Programmierung aufwendig (vor aufwendig (vor allem Debugging)allem Debugging)
VFP-Lernaufwand VFP-Lernaufwand für Ereignisse/OOPfür Ereignisse/OOP
WartungsaufwandWartungsaufwand
Wizards & Wizards & Builders GmbH Builders GmbH
„„Neuschreiben“Neuschreiben“
Vorteile:Vorteile: Bessere Design-Bessere Design-
werkzeugewerkzeuge Datenbankcon-Datenbankcon-
tainer verwendbartainer verwendbar Alle Vorteile der Alle Vorteile der
Objektorientierten Objektorientierten ProgrammierungProgrammierung
Nachteile:Nachteile: Hohe Lernkurve Hohe Lernkurve
für OOPfür OOP Reengineering der Reengineering der
Anwendungs-Anwendungs-ArchitekturArchitektur
Höherer Zeit- und Höherer Zeit- und GeldaufwandGeldaufwand
Wizards & Wizards & Builders GmbH Builders GmbH
Minimalistischer AnsatzMinimalistischer Ansatz
Der minimalistische Ansatz zur Der minimalistische Ansatz zur Konvertierung von FPW nachKonvertierung von FPW nach
Microsoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Minimalistischer AnsatzMinimalistischer Ansatz
Neues Projekt anlegenNeues Projekt anlegen Hauptprogramm addierenHauptprogramm addieren
keine Maske zulässig - würde konvertiert...keine Maske zulässig - würde konvertiert...
Projekt neu erstellenProjekt neu erstellen (.SPR statt .SCX)(.SPR statt .SCX)
Zusatzdateien einfügenZusatzdateien einfügen Bitmaps, Include-DateienBitmaps, Include-Dateien
Applikation erstellenApplikation erstellen
Wizards & Wizards & Builders GmbH Builders GmbH
Gemischte NutzungGemischte Nutzung
Fallunterscheidung zu VersionFallunterscheidung zu Version NAME-Klausel zu FensternNAME-Klausel zu Fenstern
führt zu Form.Pageframe1.Page1führt zu Form.Pageframe1.Page1 READ-Befehl weiter notwendigREAD-Befehl weiter notwendig
NAME-Klausel zu GET-FeldernNAME-Klausel zu GET-Feldern Arbeiten mit ActivepageArbeiten mit Activepage Anpassung GenScrn (Setup1/2)Anpassung GenScrn (Setup1/2)
Wizards & Wizards & Builders GmbH Builders GmbH
Hybrider AnsatzHybrider Ansatz
Der hybride Ansatz zur Der hybride Ansatz zur Konvertierung von Konvertierung von
FoxPro/Windows nachFoxPro/Windows nachMicrosoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierung ProjektebeneKonvertierung Projektebene
Alle Projektkomponenten auf Alle Projektkomponenten auf einmaleinmal
Automatische Konvertierung fürAutomatische Konvertierung für EtikettenEtiketten Abfragen (Queries)Abfragen (Queries) MenüsMenüs BerichteBerichte
Einzige Möglichkeit für MaskensetsEinzige Möglichkeit für Maskensets
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierung Berichte (1)Konvertierung Berichte (1)
FoxPro/DOS-Reports aus FPW-FoxPro/DOS-Reports aus FPW-Projekten sind nicht konvertierbarProjekten sind nicht konvertierbar
Druckertreiber werden von Druckertreiber werden von Windows verwaltet (kein Windows verwaltet (kein GENPD.APP mehr)GENPD.APP mehr)
Neue Funktionen möglich Neue Funktionen möglich REPORT FORM ASCII / PREVIEWREPORT FORM ASCII / PREVIEW _GENHTML_GENHTML
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierung Berichte (2)Konvertierung Berichte (2)
FoxPro/Win-Reports direkt FoxPro/Win-Reports direkt aufrufbaraufrufbar
„„USER“-Feld zu „FRX“-DateiUSER“-Feld zu „FRX“-Datei Memofeldbreite von 10 auf 4 ByteMemofeldbreite von 10 auf 4 Byte Environment in DataenvironmentEnvironment in Dataenvironment AutoOpen/AutoClose-EigenschaftAutoOpen/AutoClose-Eigenschaft „„Environment“ in DE.OpenTablesEnvironment“ in DE.OpenTables
Wizards & Wizards & Builders GmbH Builders GmbH
KonvertierungsassistentKonvertierungsassistent
Quellcode unter VFP\Tools\ConvertQuellcode unter VFP\Tools\Convert Backup lieber vorher selbst Backup lieber vorher selbst
machenmachen Logfile nicht sonderlich interessantLogfile nicht sonderlich interessant Unterscheidung für Masken Unterscheidung für Masken
zwischenzwischen funktionaler Konvertierungfunktionaler Konvertierung visueller Konvertierungvisueller Konvertierung
Wizards & Wizards & Builders GmbH Builders GmbH
KonvertierungsartenKonvertierungsarten
Funktional:Funktional: „„\OLDx“-Backup\OLDx“-Backup Masken „s2x/t“Masken „s2x/t“ Verlagerung von Verlagerung von
Code-Snippets in Code-Snippets in neue Ereignisse neue Ereignisse und Methodenund Methoden
Visuell:Visuell: Snippet-Code wird Snippet-Code wird
in eine Programm-in eine Programm-datei ausgelagert datei ausgelagert und mußund muß
VON HANDVON HAND
zugeordnet zugeordnet werdenwerden
(= Cut & Paste)(= Cut & Paste)
Wizards & Wizards & Builders GmbH Builders GmbH
Funktionale KonvertierungFunktionale Konvertierung
Besonderheiten bei der Besonderheiten bei der funktionalen Konvertierung funktionalen Konvertierung
von Masken untervon Masken unterMicrosoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierung Ereignisse Konvertierung Ereignisse
FoxPro/Windows:FoxPro/Windows: Setup #Section 1Setup #Section 1 Setup #Section 2Setup #Section 2 ActivateActivate DeactivateDeactivate ShowShow WhenWhen ValidValid CleanupCleanup
Visual FoxPro:Visual FoxPro: FormSet.LoadFormSet.Load Form.LoadForm.Load Form/Set.ActivateForm/Set.Activate Formset.DeactivateFormset.Deactivate Formset.ReadShowFormset.ReadShow Formset.ReadWhenFormset.ReadWhen Formset.ReadValidFormset.ReadValid Formset.Unload +SPRFormset.Unload +SPR
Wizards & Wizards & Builders GmbH Builders GmbH
Konvertierung READ-OptionenKonvertierung READ-Optionen
FoxPro/Windows:FoxPro/Windows: CYCLECYCLE LOCKLOCK MOUSEMOUSE SAVESAVE TIMEOUTTIMEOUT
Visual FoxPro:Visual FoxPro: FormSet.ReadCycleFormSet.ReadCycle FormSet.ReadLockFormSet.ReadLock FormSet.ReadMouseFormSet.ReadMouse FormSet.ReadSaveFormSet.ReadSave FormSet.ReadTimeoutFormSet.ReadTimeout
Wizards & Wizards & Builders GmbH Builders GmbH
Erzeugung „SPR“-Datei (Code-Tab)Erzeugung „SPR“-Datei (Code-Tab)
„„SPR“-Datei wird als Wrapper generiertSPR“-Datei wird als Wrapper generiert [Converter] Declare Arrays[Converter] Declare Arrays
EXTERNAL ARRAY <arrayname>EXTERNAL ARRAY <arrayname>
[Converter] DeclareVariables[Converter] DeclareVariables PUBLIC _GotoPlaceHolderPUBLIC _GotoPlaceHolder EXTERNAL PROC <maske>.scxEXTERNAL PROC <maske>.scx DO FORM <maske.scx> NAME <zufall> LINKEDDO FORM <maske.scx> NAME <zufall> LINKED
[Converter] Begin/End CLEANUP[Converter] Begin/End CLEANUP CLEANUP und andere Prozeduren/FunktionenCLEANUP und andere Prozeduren/Funktionen
Wizards & Wizards & Builders GmbH Builders GmbH
Aufbau konvertierte MaskeAufbau konvertierte Maske
Maske:Maske: Formset (immer, auch wenn nur 1 Maske)Formset (immer, auch wenn nur 1 Maske) Form (Anzahl je nach Maskengruppe)Form (Anzahl je nach Maskengruppe) Pageframe (immer)Pageframe (immer) Page (Anzahl je nach Read-Leveln)Page (Anzahl je nach Read-Leveln)
Steuerelemente:Steuerelemente: CommandButtonGroup (auch 1 Button)CommandButtonGroup (auch 1 Button)
Wizards & Wizards & Builders GmbH Builders GmbH
Eigenschaft „WindowType“Eigenschaft „WindowType“
Nur bei funktionaler KonvertierungNur bei funktionaler Konvertierung 2 = READ, 3 = READ MODAL2 = READ, 3 = READ MODAL
Formset bekommt 2.6-Read-MethodenFormset bekommt 2.6-Read-Methoden Formset.Load lädt „gebundene“ Formset.Load lädt „gebundene“
Variablen!Variablen! „„Environment“ wird im Load gesetztEnvironment“ wird im Load gesetzt Recordpointer im Unload in globale Vars.!Recordpointer im Unload in globale Vars.! DataEnvironment enthält „Umgebung“DataEnvironment enthält „Umgebung“ AutoOpen/AutoClose wird gesetztAutoOpen/AutoClose wird gesetzt
Wizards & Wizards & Builders GmbH Builders GmbH
Maskeneigenschaften (1)Maskeneigenschaften (1)
FoxPro/Windows:FoxPro/Windows: MaskengruppeMaskengruppe Maske/ScreenMaske/Screen READ-LevelREAD-Level READ-BefehlREAD-Befehl MODAL-KlauselMODAL-Klausel
Visual FoxPro:Visual FoxPro: FormSetFormSet Form in FormSetForm in FormSet Page in Page in
PageframePageframe WindowType=2WindowType=2 WindowType=3WindowType=3
Wizards & Wizards & Builders GmbH Builders GmbH
Maskeneigenschaften (2)Maskeneigenschaften (2)
FoxPro/Windows:FoxPro/Windows: Open / CloseOpen / Close TitelTitel Name, Koordinaten, Name, Koordinaten,
Moveable, IconMoveable, Icon CenterCenter BorderBorder CloseClose ColorColor
Visual FoxPro:Visual FoxPro: DataenvironmentDataenvironment CaptionCaption ditodito
AutocenterAutocenter BorderstyleBorderstyle CloseableCloseable BackcolorBackcolor
Wizards & Wizards & Builders GmbH Builders GmbH
Maskeneigenschaften (3)Maskeneigenschaften (3)
FoxPro/Windows:FoxPro/Windows: HalfHeight HalfHeight
TitlebarTitlebar WallpaperWallpaper MinimizeMinimize FontFont
EnvironmentEnvironment
Visual FoxPro:Visual FoxPro: HalfHeight HalfHeight
CaptionCaption PicturePicture MinButtonMinButton Fontname, Fontname,
Fontsize, Font-Fontsize, Font-Flags (Bold usw.)Flags (Bold usw.)
DataenvironmentDataenvironment
Wizards & Wizards & Builders GmbH Builders GmbH
Nachbearbeitung von Masken Nachbearbeitung von Masken (1)(1)
READ MODAL+DEACTIVATE beides aktiv!READ MODAL+DEACTIVATE beides aktiv! Doppelte Namen für Form/Control/Var.Doppelte Namen für Form/Control/Var. Shapes immer hinter allen ControlsShapes immer hinter allen Controls Unsichtbare Buttons immer vor ControlsUnsichtbare Buttons immer vor Controls Funktionen mittlerweile belegtFunktionen mittlerweile belegt
OLDVAL(), HOME() und ähnliche Namen evtl. vorh.OLDVAL(), HOME() und ähnliche Namen evtl. vorh.
Makro-Substition nicht in Eigenschaften!Makro-Substition nicht in Eigenschaften! &cPrompt => =&cPrompt => = cPrompt&cPrompt => =&cPrompt => = cPrompt
Wizards & Wizards & Builders GmbH Builders GmbH
Nachbearbeitung von Masken Nachbearbeitung von Masken (2)(2)
Setup-RETURN zu RETURN .F. ändern!Setup-RETURN zu RETURN .F. ändern! GenScreenX-Direktiven nicht mehr GenScreenX-Direktiven nicht mehr
vorhanden, ggf. visuell konvertieren...vorhanden, ggf. visuell konvertieren... #INSERT wird eingelesen#INSERT wird eingelesen #INSERT darf nur Direktiven enthalten#INSERT darf nur Direktiven enthalten
besser: Direktiven in .h-Datei verlagern und diese besser: Direktiven in .h-Datei verlagern und diese dann setzen oder mit #INCLUDE angebendann setzen oder mit #INCLUDE angeben
Wizards & Wizards & Builders GmbH Builders GmbH
Verlagern von CodeVerlagern von Code
FoxPro/Windows:FoxPro/Windows: CLEAR READCLEAR READ SHOW GETSHOW GET
SHOW GETSSHOW GETS READ SHOW/WHENREAD SHOW/WHEN READ DE/ACTIVATEREAD DE/ACTIVATE READ VALIDREAD VALID
Visual FoxPro:Visual FoxPro: Thisform.Release()Thisform.Release() <object>.Refresh() <object>.Refresh()
bzw. bzw. <listbox>.Requery()<listbox>.Requery()
Thisform.Refresh()Thisform.Refresh() Thisform.Load()Thisform.Load() Thisform.DeActivate()Thisform.DeActivate() Thisform.Query-Thisform.Query-
unload()unload()
Wizards & Wizards & Builders GmbH Builders GmbH
Sonstige ÄnderungenSonstige Änderungen
Maskenset bei Einzelmasken entfernenMaskenset bei Einzelmasken entfernen Pageframe und Pages entfernenPageframe und Pages entfernen Parameter von Load nach Init verlagernParameter von Load nach Init verlagern Load-Variablen in eigene EigenschaftenLoad-Variablen in eigene Eigenschaften SPR-Code in eigene MethodenSPR-Code in eigene Methoden „„Private“ DatasessionsPrivate“ Datasessions WindowType 2=>0, 3=>1 WindowType 2=>0, 3=>1
(Einbahnstraße!)(Einbahnstraße!)
Wizards & Wizards & Builders GmbH Builders GmbH
Probleme mit TabellenProbleme mit Tabellen
Lange Variablen/Tabellennamen gültig!Lange Variablen/Tabellennamen gültig! Viel mehr Arbeitsbereiche! (Schleifen!)Viel mehr Arbeitsbereiche! (Schleifen!) ON KEY LABEL CTRL+0 verhindert .NULL.ON KEY LABEL CTRL+0 verhindert .NULL. NULL, DBC, neue Feldarten konvertieren NULL, DBC, neue Feldarten konvertieren
Tabellen nach VFP-Format, zurück mit: Tabellen nach VFP-Format, zurück mit: COPY TO <table> NEXT 0 TYPE FOX2XCOPY TO <table> NEXT 0 TYPE FOX2X
Wizards & Wizards & Builders GmbH Builders GmbH
Grobe AufwandsschätzungGrobe Aufwandsschätzung
ÜbersichtsmaskenÜbersichtsmasken 1/4 1/4 MTMT
KonfigurationsmaskenKonfigurationsmasken 1/2 1/2 MTMT
"Onetomany"-Masken"Onetomany"-Masken 4 MT4 MT DialogmaskenDialogmasken 1/8 MT1/8 MT BerichteBerichte 1/4 MT1/4 MT TabellenTabellen 1/8 MT1/8 MT MenüsMenüs 1/8 MT1/8 MT
Wizards & Wizards & Builders GmbH Builders GmbH
OLE-Server aus FoxPro/WindowsOLE-Server aus FoxPro/Windows
Erzeugen von OLE-Public-DLLs Erzeugen von OLE-Public-DLLs aus FoxPro/Windows-aus FoxPro/Windows-
Anwendungen mitAnwendungen mitMicrosoft Visual FoxProMicrosoft Visual FoxPro
Wizards & Wizards & Builders GmbH Builders GmbH
FPW-Wrapper (1)FPW-Wrapper (1)
Ox = Createobject( „Test“ )Ox = Createobject( „Test“ )
Define Class Test as custom olepublicDefine Class Test as custom olepublic
Procedure InitProcedure Init
cd <wohinauchimmer>cd <wohinauchimmer>
set path to dataset path to data
this.application.visible = .T.this.application.visible = .T.
Procedure DoItProcedure DoIt
do <maske.spr>do <maske.spr>
EnddefineEnddefine
Wizards & Wizards & Builders GmbH Builders GmbH
FPW-Wrapper (2)FPW-Wrapper (2)
Ausführung aus anderen Programmiersprachen:Ausführung aus anderen Programmiersprachen:
Ox = Createobject( „Test.Test“ )Ox = Createobject( „Test.Test“ )
Ox.DoIt()Ox.DoIt()
Wenn im READ Tabelle nicht geschlossen wird:Wenn im READ Tabelle nicht geschlossen wird:
? Ox.application.Eval( <feldname> )? Ox.application.Eval( <feldname> )
Wizards & Wizards & Builders GmbH Builders GmbH
Was sollte man überlegen?Was sollte man überlegen?
Minimalitisch?Minimalitisch? Als Wrapper Als Wrapper
aufrufen?aufrufen?
Funktional?Funktional? Später überarbeiten?Später überarbeiten? Nachbearbeiten auf-Nachbearbeiten auf-
wendiger als neu?wendiger als neu?
Gleich Visuell?Gleich Visuell? Gemischt je nach Gemischt je nach
Maskeneinsatz?Maskeneinsatz?
Wizards & Wizards & Builders GmbH Builders GmbH
Vielen Dank!Vielen Dank!
Das waren die Themen:Das waren die Themen: Fallstudie aus der PraxisFallstudie aus der Praxis VorüberlegungenVorüberlegungen KonvertierungsansätzeKonvertierungsansätze Minimalistische Minimalistische
KonvertierungKonvertierung Hybrider AnsatzHybrider Ansatz Konvertierung BerichteKonvertierung Berichte KonvertierungsassistentKonvertierungsassistent Funktionale KonvertierungFunktionale Konvertierung MaskeneigenschaftenMaskeneigenschaften Nachbearbeitung MaskenNachbearbeitung Masken FPW-Wrapper-KlassenFPW-Wrapper-Klassen
Wizards & Wizards & Builders GmbH Builders GmbH
Wenn Fragen bestehen:Wenn Fragen bestehen:
Wizards & BuildersWizards & BuildersMethodische Software-Methodische Software-
Entwicklung GmbHEntwicklung GmbH
Frankfurter Str. 21bFrankfurter Str. 21b
61476 Kronberg61476 Kronberg
Tel.: 06173-950906Tel.: 06173-950906
Fax: 06173-950907Fax: 06173-950907
CIS: 101605,175CIS: 101605,175