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"


4. a30 : Die Elemente. Hinweise zum Quellprogramm

Zunächst etwas zum Programmiermodell des Adobe-Flex-Systems.
Ein Flex-Programm, Dateityp .mxml, hat im allgemeinen zwei große Abschnitte:

1. ActionScript : (Prozeduraler Teil) Damit wird das Verhalten beschrieben

2. MXML : (Deklarativer Teil) Beschreibung der Oberfläche mit XML. Mit dem sehr mächtigen Konzept "Data Binding" erreicht man, daß ohne besondere Befehle in den Oberflächenelementen sofort zugeordnete Daten erscheinen, die im ActionScript-Code verändert werden.


Ein Flex-Programm muß kompiliert werden, dabei wird daraus eine Flash-Datei (.SWF). Bei der Kompilierung wird der MXML-Teil zuerst in ActionScript umgewandelt, denn MXML ist nur eine einfachere, deutlich kompaktere Darstellungsweise der Oberflächenelemente, gedacht als Erleichterung für den Programmierer! Im Prinzip könnte er also auf MXML verzichten, hätte dann aber viel mehr zu schreiben. Wenn sich die Oberflächenstruktur zur Laufzeit aber dynamisch ändern soll, muß jede solche Veränderung in ActionScript programmiert werden.
Hinzukommen kann außerdem

3. CSS : Festlegung von Einzelheiten des Erscheinungsbildes der Oberflächenelemente
Auch dieser Teil wird vom Compiler in ActionScript verwandelt! Damit kann man ebenfalls, und zwar auch zur Laufzeit, Eigenschaften der Oberflächenelemente verändern, etwa die Hintergrundfarbe, die Schriftart und vieles mehr.

Im MXML-Teil und mit CSS legt man i.a. diejenigen Eigenschaften fest, die am Beginn gelten sollen und/oder sich im Verlauf nicht ändern.


So sieht a30 zur Laufzeit aus:  [später geändert: "Results" zwischen "Grid" und "Info"]



Dieses Gebilde ist also die Oberfläche des Programms a30.swf; dieses entsteht beim Kompilieren der Datei a30.mxml.
Die wichtigsten Teile sind mit roten Ziffern markiert, jedes davon hat im Programm einen dreibuchstabigen Namen, mit dem man ihm einen Inhalt zuweisen kann (s. Anhang 1). Die zugehörigen Programmteile in  a30.mxml  findet man leicht anhand folgender Beschreibung:


1. <mx:Panel id="mainPanel" ... >
Die Panels 1 und 2 bilden die beiden Hauptteile und sind zusammengefaßt zu einer <mx:HDividedBox>. Bei einer solchen kann  man die Trennlinie mit Maus nach links und rechts verschieben.

2. <mx:Panel title="allegro-C V30" ... >
In diesem Panel wird der Index präsentiert und dazu die Funktionen zum Blättern.
Über dem Index sind zwei ComboBoxen: die erste für die Datenbankwahl (Wahl der Anwendung), die zweite für die Registerwahl (Wahl der Funktion). Die erste wird unwirksam, wenn a30 gezielt für eine Anwendung (Datenbank) gestartet wird, s. Anh. 4.

3. <mx:TabNavigator id="tNav" ...
Unter jedem Tab steckt eine <mx:VBox id="name"... >
Die id-Namen sind  INTbox, EXTbox, FORbox, GRIbox, INFbox, MENbox
, RESbox
In diese Tab-Felder kommen die Inhalte, die vom Server unter dem betr. Label ankommen, z.B.  _!_INT inhalt  usw.
Zu sehen ist das Tab EXT mit der externen Anzeige eines Datensatzes; man erkennt, daß hier auch ein wenig Graphik möglich ist sowie Hyperlinks, in diesem Fall zum GBV und zum OPAC (Anzeigeparameter d-a30.apr mit d-k.apt).
Hinzu kommt ein Tab namens  FREbox  für den sog. FreiRaum, in dem man beliebige Formulare selber gestalten kann.

4.   Der eigentliche Index erscheint in einem Feld des Typs  <mx:List id="index"  ... change="findRecords(); />
Mit dem Attribut  change wird angegeben, welche Funktion beim Anklicken einer Zeile zu aktivieren ist. Die Funktion findRecords() holt dann die zur Registerzeile gehörigen Daten. Gibt es nur einen Datensatz, kommt er in die Tabs INT und EXT, sind es mehrere Datensätze, wird die Kurzliste im Ergebnismengenfenster präsentiert (das hier nicht zu sehen ist).

5. Das Menü (Daten, Hilfe)
Sein Inhalt wird definiert in der XML-Struktur  "menuBarCollection" innerhalb des Programms a30.mxml.
Der erste Menüpunkt unter "Daten" ist "Eigenes Menü", damit wird die Datei  a30men.htm  in das MEN-Tab geladen.

6. Das Befehls-Eingabefeld heißt im Programm  COMmand  und kann verschiedene Typen von Befehlen entgegennehmen.
(Hinter dem Label _!_COM kann man auch von einem Job aus etwas hineinschreiben.)
Befehle:   i XYZ abc  Register XYZ an der Stelle abc aufblättern
                 
f suchbefehl  Ergebnismenge bilden und anzeigen
              X jobname[--Vuxy=abc--Vuxz=def], wobei jobname.job auf dem Skriptverz. liegen muß  
              h textdateiname (HTML oder auch TXT)
              _!_...  Direktbefehl (zum Testen geeignet)
              #nummer Eine interne Satznummer, dann wird dieser Satz geholt
Unter dem Befehlsfeld ist eine Textzeile namens SHO, normalerweise für die Kurzzeile des aktuellen Satzes gedacht (oben nicht zu sehen)
Sonderfall
Wenn etwas anderes eingegeben wird, dann ruft das Programm den Job  a30sim.job  auf und übergibt ihm die Eingabe. Diesen Job kann der Systemverwalter ganz beliebig schreiben. Im a30-Paket ist es als Beispiel so angelegt, daß dann eine Suche im Register TIT mit  and-Verknüpfung der eingegebenen Wörter gemacht wird. D.h. das Eingabefeld kann unmittelbar als Befehlseingabe für eine simple Stichwortsuche betrachtet werden.



7. Das Hinweisfeld links neben dem Menü heißt im Programm  MESsage  
Es zeigt meistens die aktuelle Satznummer mit dem Erfassungsdatum des Satzes.
Unter dem Label _!_MES kann man auch von einem Job aus etwas hineinschreiben.

8. Die Kurzzeile kann beliebige Angaben enthalten, sie heißt im Programm  SHOrt  
Unter dem Label _!_SHO kann ein Job etwas ganz anderes hineinschreiben.
In diesem Falle steht hier die Kurzzeile zum angezeigten Datensatz. Sie bleibt auch stehen, wenn die anderen Tabe angezeigt werden und der Satz dann nicht zu sehen ist.
Die Symbole an der linken Seite der Kurzzeile stehen für: Zurück in der Menge der vorher angezeigten Sätze, Kurzliste der vorher angezeigten Sätze ("history list"), Vorwärts in der Liste der vorher angezeigten Sätze. Der betr. Satz wird jeweils unter INT und EXT wieder angezeigt.

9. Das Statusfeld ganz unten links unter dem Indexfeld heißt im Programm  STAtus  
Es zeigt normalerweise auch die aktuelle Satznummer.
Unter dem Label _!_STA kann man aber von einem Job aus etwas ganz anderes hineinschreiben.

Mit Klick auf die Wörter  BIG /    rechts unten schaltet man die Schriftgröße im Index- und Kurzlistenfenster sowie im INT-Tab.

Hier nicht gezeigt ist das Ergebnismengenfenster! Es handelt sich dabei um eine "Komponente", die aus dem Hauptprogramm heraus gestartet wird, wenn eine Ergebnismenge gebildet wurde. Diese Komponente ist in einer eigenen MXML-Datei namens kurzliste.mxml programmiert. Das Hauptfenster und die Komponente können jeweils auf die Inhalte und Eigenschaften des anderen zugreifen. (Anders als in a99 muß man das Fenster nicht schließen, um mit einem Satz zu arbeiten.) Der Button "Kurzliste" öffnet und schließt das Ergebnismengenfenster.

Die Ergebnismengen sammeln sich im Tab "Results". Dort hat man auch die Möglichkeit, 2 ausgewählte Erg.Mengen logisch zu kombinieren, und zwar mit den Operatoren AND, OR und NOT, die durch geeignete Symbole dargestellt sind, auf die man klickt. So sieht das aus:

Logische Kombination von Ergebnismengen


Bei A und B sieht man die zuletzt betrachteten Ergebnismengen. Mit den Symbolen links davon führt man die Kombination aus, der Doppelpfeil vertauscht A und B. Als UND-Verknüpfung von "goethe" und "schiller" ist hier gerade eine Erg.Menge mit 50 Sätzen entstanden.
Klickt man auf eine der Erg.Mengen, wird sie bei B eingesetzt, und das bisherige B wandert nach A. So kann man sehr schnell zwei gestimmte Ergebnismengen gezielt nach A und B setzen, um sie dann zu kombinieren.

Die Formulare, die im "Form"-Tab erscheinen, werden in einer weiteren Komponente programmiert, deren drei Quelltexte im Unterverzeichnis  a30/a30form  liegen. Die Deklaration der Formulare steht in einer Datei  a30for.xml  und ist datenbankspezifisch änderbar; die Formulare müssen ja zur CFG der Datenbank passen, wie die Formulardatei bei a99.  [mehr dazu: Anhang 5]

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




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