Active ExtendActive ExtendPeter HerzogPeter Herzog
dFPUG c/o ISYS GmbHdFPUG c/o ISYS GmbH
Active Extend ProgrammsammlungActive Extend Programmsammlung
• VFX AFX WizardVFX AFX Wizard• Die Dateien des WizardsDie Dateien des Wizards• Wizard MetabaseWizard Metabase• AJAX ;-)AJAX ;-)• AFX.DLLAFX.DLL• AFX Scripting EngineAFX Scripting Engine• AFX.INIAFX.INI
Wie arbeitet der VFX AFX WizardWie arbeitet der VFX AFX Wizard
• VFX Form wird gestartetVFX Form wird gestartet
• VFX Form wird analysiert Cursor und VFX Form wird analysiert Cursor und Variablen werden erzeugtVariablen werden erzeugt
• Metadaten und Variablen werden Metadaten und Variablen werden gemischtgemischt
• Wizfiles und Daten werden kopiertWizfiles und Daten werden kopiert
• AFX / AFP Seiten werden erzeugt.AFX / AFP Seiten werden erzeugt.
Config.afxConfig.afx
• Wenn ein Cursoradapter verwendet wird, Wenn ein Cursoradapter verwendet wird, wird der Zugangscode zum SQL-Server in wird der Zugangscode zum SQL-Server in der config.vfx gespeichert.der config.vfx gespeichert.
• Diese config.vfx wird als config.afx Diese config.vfx wird als config.afx verschlüsselt mit der AFXCrypt Funktion verschlüsselt mit der AFXCrypt Funktion im Rootverzeichnis der APP abgelegt.im Rootverzeichnis der APP abgelegt.
• Bearbeitbar mit AFXCONFIG.EXEBearbeitbar mit AFXCONFIG.EXE• Die config.afx wird nicht mehr Die config.afx wird nicht mehr
überschrieben.überschrieben.
<App>.AFPA<App>.AFPA<App>.AFPA.CODE<App>.AFPA.CODE
• Jeder Applikation wird eine AFPA und eine Jeder Applikation wird eine AFPA und eine AFPA.CODE Datei zugefügt.AFPA.CODE Datei zugefügt.
• In der <App>.AFPA.CODE ist der Pfad In der <App>.AFPA.CODE ist der Pfad und der Name der Datenbank, aus Sicht und der Name der Datenbank, aus Sicht des Servers, einzutragen.des Servers, einzutragen.
• Diese Dateien werden nicht Diese Dateien werden nicht überschrieben.überschrieben.
XPOPENXPOPENLOGINLOGIN
• Startprogramm ist die XPOPEN.AFP oder Startprogramm ist die XPOPEN.AFP oder XPOPEN.AFXXPOPEN.AFX
• LOGIN.AFP und LOGINVALID.AFP LOGIN.AFP und LOGINVALID.AFP überprüfen mit der VFXFOPEN.DBF den überprüfen mit der VFXFOPEN.DBF den Userlogin.Userlogin.
• XPOPENDIR.AFP zeigt das Menü unter XPOPENDIR.AFP zeigt das Menü unter Berücksichtigung des Flags INETLEVELBerücksichtigung des Flags INETLEVEL
VFX AFX InternetformularVFX AFX Internetformular
• vfx_<form>.AFPvfx_<form>.AFP• vfx_<form>.AFP.CODEvfx_<form>.AFP.CODE• vfx_<form>.AFP.AFPIvfx_<form>.AFP.AFPI• vfx_<form>_EXEC.AFPvfx_<form>_EXEC.AFP• vfx_<form>_EXEC.AFP.CODEvfx_<form>_EXEC.AFP.CODE• vfx_<form>_FILTER.AFPvfx_<form>_FILTER.AFP• vfx_<form>_FILTER.AFP.CODEvfx_<form>_FILTER.AFP.CODE• vfx_<form>_FILTER_EXEC.AFPvfx_<form>_FILTER_EXEC.AFP• vfx_<form>_GRID<lfd>.AFPvfx_<form>_GRID<lfd>.AFP• vfx_<form>_GRID<lfd>.AFP.CODEvfx_<form>_GRID<lfd>.AFP.CODE• vfx_<form>_PROC.AFPvfx_<form>_PROC.AFP• vfx_<form>_PROC.AFP.CODEvfx_<form>_PROC.AFP.CODE
Wizard MetabaseWizard Metabase
• Alle Klassen und Basisklassen sind als Alle Klassen und Basisklassen sind als Datensätze erfasst.Datensätze erfasst.
• Versionsnummer 99.99 wird nicht Versionsnummer 99.99 wird nicht überschrieben bei einem Updateüberschrieben bei einem Update
• lCode = .F. bedeutet Textmerge ModuslCode = .F. bedeutet Textmerge Modus
• lCode = .T. bedeutet Execscript ModuslCode = .T. bedeutet Execscript Modus
• lParam = .T. interne ParameterlParam = .T. interne Parameter
• Datensätze für EndeTag Datensätze für EndeTag
AJAXAJAX
• Das moderne Internetputzmittel Das moderne Internetputzmittel ☺☺• Async. JavaScript and XMLAsync. JavaScript and XML• Eine intelligente Methode um Daten in eine Eine intelligente Methode um Daten in eine
laufende HTML-Maske einzufügenlaufende HTML-Maske einzufügen
AFX_MethodenAFX_Methoden
• Code für die PROC-Datei ausCode für die PROC-Datei aus• AFX_ValidAFX_Valid• AFX_KeyPressAFX_KeyPress• AFX_GotFocusAFX_GotFocus• AFX_LostFocusAFX_LostFocus• Wird umgewandelt inWird umgewandelt in• OnChange()OnChange()• OnKeyPress()OnKeyPress()• OnFocus()OnFocus()• OnBlur()OnBlur()
JavascriptJavascript
• HTTP POST zur Procedure DateiHTTP POST zur Procedure Datei• var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")• xmlhttp.Open("POST","<<filename>>_PROC<<extension>>",falxmlhttp.Open("POST","<<filename>>_PROC<<extension>>",fal
se)se)• xmlhttp.setRequestHeader("Content-Type", "application/x-xmlhttp.setRequestHeader("Content-Type", "application/x-
www-form-urlencoded")www-form-urlencoded")• xmlhttp.send(DataToSend)xmlhttp.send(DataToSend)• XML String als Objekt erzeugenXML String als Objekt erzeugen• var xmldoc = new ActiveXObject("Microsoft.XMLDOM")var xmldoc = new ActiveXObject("Microsoft.XMLDOM")• xmldoc.async="false"xmldoc.async="false"• xmldoc.loadXML(xmlhttp.responsetext)xmldoc.loadXML(xmlhttp.responsetext)
_PROC Datei_PROC Datei_PROC.CODE Datei_PROC.CODE Datei
• Code in der PROC Datei ruft die einzelnen Methoden auf Code in der PROC Datei ruft die einzelnen Methoden auf und baut XML-String zusammenund baut XML-String zusammen
• Jede procedure wird in der PROC_CODE Datei erzeugt Jede procedure wird in der PROC_CODE Datei erzeugt und dort abgearbeitet.und dort abgearbeitet.
• LPARAMETERS cAlias, nRecno, cControlSource, LPARAMETERS cAlias, nRecno, cControlSource, cControlfield, cValue, cStatustext wird automatisch cControlfield, cValue, cStatustext wird automatisch eingefügteingefügt
• cValue und cStatustext werden per Referenz übergebencValue und cStatustext werden per Referenz übergeben• Goprogram.cpendingmessageGoprogram.cpendingmessage
Mögliche AnwendungenMögliche Anwendungen
• Valid kann den Wert abprüfen und bei Valid kann den Wert abprüfen und bei Fehlern das Verlassen verhindern.Fehlern das Verlassen verhindern.
• LostFocus kann Upper() oder Lower() auf LostFocus kann Upper() oder Lower() auf den Wert anwenden.den Wert anwenden.
• Hinweise können in der Statuszeile Hinweise können in der Statuszeile angezeigt werden.angezeigt werden.
• Goprogram.cpendingmessage wird als Goprogram.cpendingmessage wird als Javascript Alert( ) angezeigt.Javascript Alert( ) angezeigt.
AFX.DLLAFX.DLL
• 3 Programme in einem3 Programme in einem
• 1. Internet ISAPI DLL1. Internet ISAPI DLL
• 2. normale DLL z.B. auch für C#2. normale DLL z.B. auch für C#
• 3. VFP FLL (set libr to afx.dll)3. VFP FLL (set libr to afx.dll)
• Mehrere neue FunktionenMehrere neue Funktionen
AFX.DLL IIAFX.DLL II
• FOXSHORTPATH()FOXSHORTPATH()
• AFXSYS(2015)AFXSYS(2015)
• AFXTEMPROOT()AFXTEMPROOT()
• AFXENCRYPT() AFXDECRYPT()AFXENCRYPT() AFXDECRYPT()
• WINADMIN()WINADMIN()
• WINLOG()WINLOG()
• WINUSER()WINUSER()
AFX-ScriptengineAFX-Scriptengine
• Nahezu 90% der AFP 3.0 eingebaut.Nahezu 90% der AFP 3.0 eingebaut.
• Kostenlos für VFX9.5 AnwenderKostenlos für VFX9.5 Anwender
• Kostenlos im internen NetzwerkKostenlos im internen Netzwerk
• AFX ist nicht nur eine Scriptengine, AFX ist nicht nur eine Scriptengine, sondern eine Plattform für weitere sondern eine Plattform für weitere Produkte.Produkte.
• AFX benötigt nur die VFP9 RuntimeAFX benötigt nur die VFP9 Runtime
• XP, Win2K, Win2003XP, Win2K, Win2003
AFX.INIAFX.INI
• Verwenden Sie SETAFXINI.EXEVerwenden Sie SETAFXINI.EXE
• Pro Domainname kann ein eigener User Pro Domainname kann ein eigener User eingestellt werden.eingestellt werden.
• Dadurch können echt abgesicherte AFX-Dadurch können echt abgesicherte AFX-Sites gebaut werden.Sites gebaut werden.
• Registrierung via ActivationKey erhältlich Registrierung via ActivationKey erhältlich unter register.visualextend.deunter register.visualextend.de
Weitere InformationenWeitere Informationen
• ActiveExtend Homepage ActiveExtend Homepage http://www.activeextend.com
• VisualExtend Homepage VisualExtend Homepage http://www.visualextend.de
• Registrierung AFX Registrierung AFX http://register.visualextend.de
• Active FoxPro Pages Active FoxPro Pages http://www.afpages.de