Willkommen Gast, Anmelden

Active Extension für FoxPro Suche im wiki »

Zusätzliche Funktionen einbinden

Eine AFP-Datei wird automatisch zu einem PRG umgewandelt und ausgeführt.

Es gibt zusätzlich die Möglichkeit an vier verschiedenen Stellen zusätzlichen Code unterzubringen.

  • mit SET PROCEDURE TO datei ADDI, SET LIBRARY TO datei ADDI oder SET CLASSLIB TO datei ADDI
  • mit APPLICATION.PRG
  • mit APPLICATION.CODE
  • mit afpseite.AFP.CODE

SET PROCEDURE TO

Wie bei jedem FoxPro Programm können sie mit set proc to, set libr to oder set classlib to zusätzlichen wiederverwendbaren Code verwenden

APPLICATION.PRG

liegt bei einer AFP-Seite eine APPLICATION.PRG wird diese 1 zu 1 direkt am Anfang des Codes jeder AFP-Seite eingefügt.
Hier sollte nur Code hinterlegt werden, der keine functions oder procedures enthält. Ein eventuelles RETURN beendet auch das PRG und es wird keine Ausgabe erzeugt, deshalb sollte hier nur Code hinterlegt werden, der auch tatsächlich am Anfang eingefügt werden kann.

APPLICATION.CODE

wird eine APPLICATION.CODE gefunden, wird diese Datei 1 zu 1 nach dem endgültigen RETURN ___AFP im Code von jeder AFP-Seite eingefügt.
Hier kann man mit procedure oder function externe Funktionen angeben, welche aus dem Code heraus aufgerufen werden können.

afpseite.AFP.CODE

wird eine Seite gefunden, welche den gleichen Namen + ".CODE" trägt wie die gerade angesprochene AFP-Seite, wird diese Datei am Ende des erzeugten PRG´s eingefügt. So wie die APPLICATION.CODE kann auch hier eine procedure eingetragen werden, die speziell für die gerade ausgerufene AFP-Seite gilt.

Beispiel

Nehmen wir ein einfaches Beispiel, indem auf zwei Arten das aktuelle Datum und die Uhrzeit ausgeben werden:

TEST.AFP

<html>
<head>
<title>Testpage</title>
</head>
<body>
<%?datetime()%>
<hr>
<<datetime()>>
</body>
</html>

Inhalt der APPLICATION.PRG

*-- Application.prg
*-- wird vor jeder AFP-Seite ausgeführt, die im gleichen Verzeichnis liegt

Inhalt der APPLICATION.CODE

*-- application.code
procedure applicationcode
return "applicationcode"

Inhalt der TEST.AFP.CODE

*-- das ist test.afp.code
procedure testcode
return "testcode"

das erzeugte PRG

___afp=''
#DEFINE CANCEL *
#DEFINE QUIT *
#DEFINE RESUME *
#DEFINE RETRY *
*----------------------------------------------------
*-- Import der application.prg
*----------------------------------------------------
*-- Application.prg
*-- wird vor jeder AFP-Seite ausgeführt, die im gleichen Verzeichnis liegt
*----------------------------------------------------
*-- Ende Import der application.prg
*----------------------------------------------------
text to ___afp TEXTMERGE noshow addi
<html>
<head>
<title>Testpage</title>
</head>
<body>

endtext
___afp=___afp+fox.convtostr(datetime())
text to ___afp TEXTMERGE noshow addi

<hr>
<<datetime()>>
</body>
</html>
endtext

return ___afp

* Suche nach C:\inetpub\wwwroot\application.code
*----------------------------------------------------
*-- Import der application.code
*----------------------------------------------------
*-- application.code
procedure applicationcode
return "applicationcode"
*----------------------------------------------------
*-- Ende Import der application.code
*----------------------------------------------------
* Suche nach C:\inetpub\wwwroot\test.afp.code
*----------------------------------------------------
*-- Import der <datei>.afp.code
*----------------------------------------------------
*-- das ist test.afp.code
procedure testcode
return "testcode"

*----------------------------------------------------
*-- Ende Import der <datei>.afp.code
*----------------------------------------------------

Edit | Alle | Kategorien | Navigation Pfad | Administration | Files
WikiSoftware (c) by Screwturn Wiki