active extend

18
Active Active Extend Extend Peter Herzog Peter Herzog dFPUG c/o ISYS GmbH dFPUG c/o ISYS GmbH

Upload: doria

Post on 01-Feb-2016

72 views

Category:

Documents


0 download

DESCRIPTION

Active Extend. Peter Herzog dFPUG c/o ISYS GmbH. Active Extend Programmsammlung. VFX AFX Wizard Die Dateien des Wizards Wizard Metabase AJAX ;-) AFX.DLL AFX Scripting Engine AFX.INI. Wie arbeitet der VFX AFX Wizard. VFX Form wird gestartet - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Active Extend

Active ExtendActive ExtendPeter HerzogPeter Herzog

dFPUG c/o ISYS GmbHdFPUG c/o ISYS GmbH

Page 2: Active Extend

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

Page 3: Active Extend

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.

Page 4: Active Extend

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.

Page 5: Active Extend

<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.

Page 6: Active Extend

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

Page 7: Active Extend

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

Page 8: Active Extend

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

Page 9: Active Extend

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

Page 10: Active Extend

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()

Page 11: Active Extend

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)

Page 12: Active Extend

_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

Page 13: Active Extend

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.

Page 14: Active Extend

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

Page 15: Active Extend

AFX.DLL IIAFX.DLL II

• FOXSHORTPATH()FOXSHORTPATH()

• AFXSYS(2015)AFXSYS(2015)

• AFXTEMPROOT()AFXTEMPROOT()

• AFXENCRYPT() AFXDECRYPT()AFXENCRYPT() AFXDECRYPT()

• WINADMIN()WINADMIN()

• WINLOG()WINLOG()

• WINUSER()WINUSER()

Page 16: Active Extend

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

Page 17: Active Extend

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

Page 18: Active Extend

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