UB BRAUNSCHWEIG
Symbolfoto
  • Impressum
  • Startseite
  • allegro-C von A-Z
  • Druckversion


a30 - Plattformunabhängiges Programm zur Nutzung von allegro-Datenbanken im Netz auf der Basis des Systems "Adobe Flex"


Anhang 1: Mehr zum  "Grundprinzip" : Wie wertet a30 die Antwort eines Skripts aus?.

a30 kann also PHP- oder andere Skripte oder CGI-Programme auf dem Webserver starten und deren Antwort auswerten.
Was ein Skript produziert (mit PHP-Befehl  echo  und/oder  avanti-FLEX-Befehl  write), oder allgemeiner: was als Ergebnis eines HTTP-Requests zurückkommt, wird von a30 als Antwort verarbeitet. Solche Vorgänge sind nichts Neues, sie sind schon die Grundlage für PHPAC/AJAX und für andere mit avanti arbeitende Modelle: dabei übernehmen dann JavaScripte die Verarbeitung der Antwort, typischerweise kommt dann ein Inhalt in einen dafür vorgesehenen HTML-Bereich <div id="xyz"> </div>
Die Funktionsweise der Zusammenarbeit ist bei a30 einfacher (JavaScript entfällt):
Die Antwort eines Skripts ist zwar eine einzige lange Zeichenfolge, ein Datenstrom, ist aber strukturiert in mehrere Teile, die dann jeweils bestimmten Feldern in der a30-Oberfläche zuzuordnen und dort anzuzeigen sind. Per Skript hat man also die Möglichkeit, den diversen Elementen von a30 gezielt Daten zukommen zu lassen. 

Folgende Teile kann eine Antwort haben; jedes dieser Felder beginnt mit _!_ und einem dreibuchstabigen Code, den a30 auswertet. Dahinter folgt ein Spatium und dann direkt der Inhalt in Form von Text, beendet durch die nächste Sequenz _!_ oder das Dateiende. Die Codes bestehen grundsätzlich aus den drei ersten Buchstaben des Feldes bzw. der Funktion.
Die Liste der Codes und zugehörigen Felder in a30: (wie gesagt, davor steht jeweils _!_ )

Code Bedeutung
COM Command line (Befehlszeile), meistens der find-Befehl der letzten Erg.Menge, z.B.  f PER shakesp?
SHO Kurzzeile (short entry), kann beliebig belegt werden, HTML-fähig; in  a30get.job  wird hier die Kurzzeile des Satzes eingesetzt
LIS Kurzliste von Ergebnissen (zusätzl. Listenfenster; Beispiele in  a30res.job  und  a30dab.job)
Direkt hinter LIS kann ein Titel für das Ergebnismengenfenster kommen, sonst sofort die Liste
VIE ViewListe (ebenfalls im Listenfenster; Anwendungsbeispiel in a30rvw.job)
 
Struktur bei LIS und VIE: satznr:text  (Bis zu 4 Sortierpunkte kann man beliebig setzen: _!_VIE 00 Name---17 Titel---54 Jahr---60 Signatur)
REG Registerabschnitt f. Indexfenster, erzeugt von a30ind.job, Struktur der Zeilen: satznr:anzahl text
REC RecNr = Datensatznummer und letzter Änderungsstempel (Format: nummer JJJJMMDD/hh:mm:ss)
ACC access: Berechtigungsziffer (Schreibrecht nur mit 2 oder 3)
(ACC muß auf REC folgen; wennn es fehlt, sind die Speicherbuttons inaktiv)
MES Kurzmessage : Mitteilungsfeld oben Mitte
POP PopUp-Message : Erscheint in einem Meldungsfensterchen, die Meldung kann 2teilig sein:
_!_POP Teil 1--Teil 2,   oder mehrzeilig mit \n als Trennung
STA Statusfeld unter dem Indexfeld links
HEA Headline : Überschrift über dem Hauptfenster (Default "Datensatz anzeigen, bearbeiten und speichern")
bei Aufruf von a30 mit Option  title=XYZ  wird  
XYZ  verwendet (s. Anhang 4)
NAM Namen der Register als Combobox (Sonderfall in a30ind.job)
BAR Auswechslung des Menüs durch ein eigenes; Beispiel:  a30bar.job
COP Entweder _!_COP INF oder _!_COP MEN :
Kopiert den Inhalt von  INF bzw. MEN in das Tab  HTE  zwecks Editierung
PAS Codiertes Kennwort zur Identi- und Authentifizierung (aus a30id.job). Nicht sichtbar,  nur intern verwendet.
Wenn a30 einen Job startet, liefert es dann automatisch dieses Kennwort als Variable  #uID  mit.
SET macht den dahinter angegebenen Tab sichtbar: EXT, INT, INF, FOR, GRI, MEN, HTE, RES, FRE, NAM .  Hinter NAM kann der Name eines symb. Registers angegeben werden, z.B.  SET NAM TAF
 Im Falle HTE ist nachfolgend 0 oder 1 anzugeben für unsichtbar / sichtbar, also z.B. Inhalte für die 6 Tabs. 
Und nun die Tabs:
Was z.B. hinter _!_INT ... folgt, wird in das Intern-Tab kopiert.
Außer FOR und GRI kann es HTML-Text sein oder schlichter Text, stets jedoch mit UTF-8 codiert.
INT Intern (Text des Datensatzes in Kategorieform, entw. normal oder mit Feldnamen aus  a.cfl (Edit+ startet  a30edp.job)
EXT Extern (Text des Datensatzes in aufbereiteter Form, z.B. mit  d-a30.apr)
FOR Name des Formulars, das im Formularfeld angezeigt werden soll, dann zeilenweise die Inhalte der Felder; Nutzung mit  a30for.job
GRI Grid-Darstellung des aktuellen Datensatzes (a30gri.job)
RES Result-Tab  (Auswahlliste der letzten 25 Ergebnismengen) Hier kann ein Job nichts hineinschreiben,
d.h. _!_RES bewirkt nichts, nur  _!_SET RES
.,wodurch der Inhalt sichtbar wird 
INF Info (beliebiger Text, HTML-Attribute möglich, zu Beginn leer)
MEN Menü-Tab  (gleichfalls, zu Beginn wird hier  a30men.htm  angezeigt)
HTE HTML-Editor  (Wird nur bei vorliegender Berechtigung sichtbar; zum Editieren simpler HTML-Dateien)
Zum Speichern nach dem Editieren wird ein Passwort gebraucht. Dies trägt der Admin in a30_ini.php als Variable $EPW ein.
FRE FreiRaum  (Wird erst sichtbar, wenn der erste Inhalt mit _!_FRE ankommt)

 
Sonderfälle:
_!_SET NAM sym   ComboBox der Registernamen aufklappen; Wenn sym angegeben ist, dann das so benannte Register aufmachen
_!_SET INDx : x ist + oder - oder eine Zahl (0-100); Macht das Indexfeld um 5% breiter oder schmaler bzw. setzt die Breite prozentual (100 = Hälfte des Bildes!)
_!_UIF  dient zur Konfigurierung der sprachlichen Elemente an der Oberfläche, dazu siehe Kap. 19 im  Fortbildungstext

Und warum keine XML-Strukturierung an dieser Stelle? Weil die Produktion der Antworttexte in PHP und FLEX-Jobs und auch
die Auswertung im Programm so ganz erheblich einfacher wird. Das schließt nicht aus, daß man später einzelne Teile solcher
Antwortlieferungen mit XML strukturieren können wird, wenn es denn was bringt. (Die Inhalte für INT, EXT, INF und MEN können,
aber müssen nicht, HTML sein!) Und wenn die Zeichenfolge _!_ mal zufällig sonstwo in den Daten auftritt? Dann erscheint das, was dahinter steht, im Tab INF.

Der einfachste Fall eines Antworttextes ist dieser:

_!_INF Dies ist eine Mitteilung_!_SET INF

Was hinter "
INF " folgt, kommt dann in das "Info"-Feld, und der SET-Befehl macht es sichtbar, falls gerade ein anderes Tab eingeschaltet war.
Und wenn in der Antwort keine Zeichenfolge _!_ auftritt? Dann kommt der gesamte Antworttext in das Tab "Info".
Etwas längeres Beispiel:  Geben Sie in die Befehlszeile dieses ein:

X a30dbi

Es erscheint im Tab INF die "Info zur Datenbank", produziert von 
a30dbi.job.
Oder:

X a30edp

Dann erscheint im Tab INT eine Anzeige des Satzes mit Feldbezeichnungen zusätzlich zu den Kategorienummern (wie bei der Funktion Edit+).
Die Befehlsform  
X jobname  ist die einfachste Form, denn hierfür muß der Systemverwalter kein PHP schreiben, sondern nur den Job  jobname.job.

Die mitgelieferten Jobs 
a30*.job  sind voll mit Beispielen, die zeigen, wie es gemacht wird.

ein Kapitel zurück zurück zum Inhaltsverzeichnis ein Kapitel vor




[i] zuletzt aktualisiert:03.08.2011
Email: ub@tu-bs.de