Vb172: JanaS - a99 in HTML programmieren
Bernhard Eversberg
ev at buch.biblio.etc.tu-bs.de
Mi Jan 7 07:25:36 CET 2004
Verlautbarung 172 der Entw.Abt. 2004-01-07
-------------------------------
Noch heute wird es ein neues GP geben, Inhalt V24.0.
Hier vorab alles ueber die neue Komponente JanaS.
Derselbe Text steht in schoenerer Form unter
http://www.allegro-c.de/janas/
JanaS : a99 in HTML programmieren
---------------------------------
Bisher konnte a99: (Bis Version 23.6)
------------------
o eine Datenbank zugaenglich machen zum Suchen,
Lesen, Schreiben und Exportieren
o Textdateien im RTF-Format anzeigen und darin eingebaute
Makros (FLEXe) ausfuehren
o externe Programme starten, z.B. auch einen Browser, die dann
aber voellig unabhaengig laufen
o Von aussen kann man a99 mit FLEXen fernsteuern - a99 als Server
Neu bei V24: (Erste Freigabe im Januar 2004)
------------
Es gibt ein Zusatzprogramm namens JanaS, das aus nichts anderem
als einem Browser-Fenster besteht. So sieht es aus:
http://www.allegro-c.de/janas
Janas kann zwei Dinge:
o Im Internet surfen, also u.a. HTML-Dateien anzeigen (Beispiel: doku.htm)
o a99 wieder aktivieren und ihm Befehle und Daten zusenden.
(Im Beispiel: hinter jedem Link steckt ein Befehl fuer a99)
JanaS laeuft zwar als getrenntes Programm, aber
-- a99 und JanaS koennen Nachrichten und Daten austauschen.
-- In HTML-Dateien koennen nun ebenfalls FLEXe eingebaut sein.
Beispiel: doku.htm ("Fuellhorn")
HTML-Formulare sind nutzbar, um Daten zu erfassen oder zu bearbeiten.
Beispiel: htmform.flx
In Formularen kann Unicode (UTF-8) verwendet werden, im Gegensatz zu den
Formularen, die in a99 eingebaut sind. Damit wird die Unicode-Eingabe und
-Bearbeitung nun auch ohne avanti moeglich.
Grafik, Tabellen, JavaScript, CSS - alle diese Mittel kann man ebenfalls
alle einsetzen.
Um Missverstaendnisse zu vermeiden:
JanaS hat nichts mit avanti zu tun und braucht keinen Web-Server. Es dient nicht
dazu, eine Datenbank ins Netz zu stellen, sondern unterstuetzt die Arbeit mit a99
auf dem PC. Anders gesagt: JanaS und a99 muessen auf dem selbem PC laufen, sonst
koennen sie nicht zusammenarbeiten.
Beschreibung
------------
a99 startet janas mit FLEX-Befehl janas 1
Das Programm janas.exe wird gestartet und zeigt standardmaessig die
Datei %TEMP%\j.htm
Normales Vorgehen:
Zuerst eine Datei a.htm auf %TEMP% bereitstellen,
Dann a als Kennbuchstabe einstellen mit Aufruf janas a
und Start mit dem Befehl janas 1 (dann wird a.htm gezeigt)
Der Kennbuchstabe ist ohne Vorbereitung standardmaessig j.
Der Kennbuchstabe bleibt waehrend der Sitzung erhalten, bis ein anderer
Befehl janas b kommt.
Mit Befehl janas 1 wird danach das Fenster geoeffnet und die
Datei b.htm gezeigt.
JanaS macht dann folgendes::
es liest a.htm
Aber: wenn darin nur steht "http://..." oder "file:///c:/... dann wird die
damit bezeichnete Datei gelesen, sonst die Datei a.htm selbst angezeigt.
Wenn in der geladenen Datei ein "besonderer Link" geklickt wird:
a.flx auf %TEMP% schreiben,
Signal an a99, dass a.flx ausgefuehrt werden soll
"Besondere Links" sehen so aus:
href="flex:x befehlsfolge" oder href="flex:X flexname" Start eines FLEX
oder
href="flex:h dateiname" a99 soll die Hilfedatei dateiname.rtf zeigen
Ein Beispiel aus der oben erwaehnten "Fuellhorn"-Seite:
<a href="flex:h fremd">IMPORT</a>
janas stellt dann automatisch auf TEMP den FLEX a.flx bereit, in dem steht
befehlsfolge
bzw.
exec flexname
bzw.
help dateiname
Anmerkungen fuer Systemverwalter:
--------------------------------
o "Besondere Links" koennen auch in HTML-Seiten eingebettet sein, die nicht
auf dem PC des Nutzers liegen, sondern irgendwo im Internet!
D.h. man kann geeignete HTML-Seiten sonstwo bereitstellen, die Wirkung
der FLEXe erfolgt aber stets nur im lokalen System des a99-Nutzers.
(Wer einen solchen Link in einem normalen Browser anklickt, erhaelt
eine Fehlermeldung wie z.B. "flex is not a registered protocol".)
Weil das eine potentielle Gefahr ist, muss der Nutzer dann die Ausfuehrung
des FLEXes bestaetigen,
o janas.exe kann man auch von Hand starten, aber nicht mit "janas url"
sondern mit:
janas dateiname
in der Datei dateiname muss dann nur die eigentliche URL stehen, die der
Browser anzeigen soll, also z.B. http://www.allegro-c.de
Zusammenfassung zum neuen FLEX-Befehl:
(So steht es auch im Hilfetext xjanas.rtf)
janas a a wird zum Kennbuchstaben fuer nachfolgende Aktionen gemacht
Sonst passiert nichts! janas.exe muss zu diesem Zeitpunkt nicht
laufen.
Default ist j. Dieser Befehl ist nur notwendig, wenn man mehr als
ein a99 am Laufen hat und diese hinsichtlich JanaS nicht durch-
einander geraten sollen.
Bei den naechsten drei Befehlen wird automatisch janas.exe gestartet,
falls es noch nicht laeuft:
janas 1 Die Datei x.htm (mit dem eingestellten Kennbuchstaben also)
wird (erneut) angezeigt
janas url Die Web-Adresse url wird angesteuert und angezeigt
janas file:///c:/allegro/abc/xyz.htm
So laesst man eine irgendwo im lokalen System liegende HTML-Datei
anzeigen.
Man beachte
den Dreifach-Schraegstrich hinter "file:"
janas dateiname
Die Datei dateiname (ohne Pfadangabe) muss auf dem HTML-Verzeichnis
liegen (unterhalb des ProgDir) und wird dann im Browser angezeigt.
janas Inhalt der iV wird als URL etc. genommen, d.h. vorher vorbereiten,
sonst kommt
"Die Seite kann nicht angezeigt werden"
janas 0 Wenn janas.exe laeuft, wird es beendet, das Fenster beseitigt.
Einbau in _endflx.flx ist zu erwaegen.
Ausserdem kann man diesen Befehl geben:
Call janas.exe janas.exe wird gestartet und liest standardmaessig die
Datei %TEMP%\j.htm
Formulare im HTML-Text
----------------------
Wenn man ein HTML-Formular gebaut hat, muss man diejenigen Input-Felder, die in
bestimmten Kategorien oder #u-Variablen landen sollen, so angeben:
<form name="formularname" action="flex:X xyz" method=GET/POST>
Feld x: <input name="nnn">
wobei nnn eine gueltige Kategorienummer oder uxy sein kann. Beides ohne #.
Diese Felder werden dann zuerst belegt, bevor der FLEX xyz.flx ausgefuehrt wird,
d.h. man muss sich darum nicht selber kuemmern! (Genau gesagt, der FLEX j.flx
wird
mit den betreffenden Befehlen gefuellt und am Schluss steht exec X xyz . In
diesem
FLEX muss dann z.B. Put stehen, wenn der Satz gespeichert werden soll.
Begleitende Massnahmen
---------------------
_door.flx : Ausgeloest durch Schaltflaeche "Tuer" : Umschalten zu JanaS
janas http://www.allegro-c.de
oder z.B. Datei doku.htm von HELP:
janas doku.htm
onerror.flx : Ausgeloest durch ungueltige Eingabe im Schreibfeld
Pruefen, ob Eingabe mit "http:" oder "file:" anfaengt, dann uebergeben an JanaS
if "www" jump www
if "http:" jump http
if "file:" jump http
...
:www
var "http://" #uxE
janas
var ""
end
:http
var #uxE
janas
var ""
end
Beispiel fuer einen FLEX, der ein komplettes HTML-Formular erzeugt
und dann JanaS aktiviert:
(Die HTML-Datei mit dem Formular wird zunaechst ins Help-Verz. geschrieben)
Zum Ausprobieren eine etwas bessere Version.
var "help\\test.htm"
open x
Vorbereitung fuer write-Befehle
xport p e-u
dow wX
dow a
wri "<html><head>" n
wri '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">' n
wri "</head><body>" n
wri '<form action="flex:x sho rec' 92 92 'disp" method=GET>' n
wri '<input type="submit" value="SEND">' n
wri 'Titel: <input name="20" size=60 maxlength=120 value="' #20 '"><br>' n
wri 'Signatur: <input name="90" size=30 maxlength=120 value="' #90 '"><br>' n
wri 'Verfasser: <input name="40" size=60 maxlength=120 value="' #40 '"><br>' n
wri 'Jahr: <input name="76" size=20 maxlength=20 value="' #76 '"><br>' n
wri '</form></body></html>'
dow A
close x
Und nun die praeparierte Datei von JanaS anzeigen lassen
janas test.htm
Und in der Datei e-u.apr steht nur drin:
E-U.APR : Einen Feldinhalt nach UTF-8 wandeln
2004-01-04 insbes. wirkt sich dies auf den FLEX-Befehl "write" aus
zl=0
Wenn "write" gegeben wird, steht der Inhalt in #u1
#-X
#u1
ASCII -> UTF-8 Tabelle laden
td-utf8
Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329,
D-38023 Braunschweig, Germany
Tel. +49 531 391-5026 , -5011 , FAX -5836
e-mail B.Eversberg at tu-bs.de
Mehr Informationen über die Mailingliste Allegro