AutoFLEX

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Di Dez 7 11:10:20 CET 1999


AutoFLEX : Das hat noch gefehlt
-------------------------------

Jeder FLEX muss per Doppelklick oder Alt+Ziffer ausgeloest werden, von 
selber springt er nicht an.
Koennte nicht ermoeglicht werden, dass ein FLEX ueber die Parametrierung
nicht nur eingerichtet, sondern sofort ausgeloest wird? Dann koennte die 
Anzeige eines Datensatzes "dynamisiert" werden, denn ein FLEX kann ja sehr
viel mehr tun als nur etwas im Anzeigefeld erscheinen lassen...
Nachdem gestern diese Idee hier entstand, ergab die Pruefung, dass sie
im Prizip sehr leicht zu realisieren waere. Ganz simpel ist es, wie immer,
jedoch nicht: der AutoFLEX, wie man das Ding nennen koennte, soll
bestimmt nicht in JEDEM Fall ausgeloest werden! Wenn man die Kurzanzeige
durchblaettert oder vom Index aus einzelne Saetze anzeigen laesst, oder
von einem anderen FLEX aus, soll nicht bei jeder Titelanzeige auch sofort ein
FLEX ablaufen, das koennte zu Verwicklungen fuehren. Auch nicht jedesmal,
wenn man eine Kategorie eingibt oder aendert, soll geFLEXt werden (denn
in jedem Fall wird ja dann die Anzeige neu aufgebaut!) Es ist also intern 
doch etwas kompliziert. Nur dann, wenn man Index UND Kurzanzeige verlaesst 
und sich konkret einem Datensatz zuwendet, DANN soll es passieren. 

Es war also nicht GANZ leicht, aber doch zu machen, und es wurde gemacht.
Was muss man tun? Die Variablen #uX0 bis #uX9 sind zur Ausloesung durch Alt+i
bestimmt (i=0...9). Jetzt kann man einen FLEX in #uX: einrichten. Dieser wird
automatisch ausgefuehrt, sobald der Satz angezeigt wird und dabei kein
Index offen ist und keine Kurzanzeige und kein FLEX ausgefuehrt wird.
Die Variable #uX: wird dann sofort wieder geloescht, um Endlosschleifen
zu vermeiden.

Einfaches Beispiel: Wenn in einem Datensatz eine Kategorie #nn  vorkommt, 
soll deren Inhalt als FLEX interpretiert und sofort ausgefuehrt werden.
Es koennte z.B. drinstehen  #nn x help xyz  .  Dann wuerde statt des Satzes
die Hilfedatei xyz angezeigt.
Loesung: Man baut in die Anzeigeparameter ein:

#nn =X:

Das ist alles! Der Inhalt von #99z wird dann in #uX: kopiert. Dieser Inhalt
wird als FLEX interpretiert und ausgefuehrt, wenn die Anzeige ausgegeben
wurde und weder Index noch Kurzanzeige offen sind.

Auf diese Weise kann man ein Hilfesystem aufbauen: Man erstellt Datensaetze,
in denen in #99z jeweils ein Befehl  x h xyz  steht. Die Datei xyz.rtf wird
dann angezeigt. Gegenueber bisherigen Hilfetexten hat das einen wichtigen
Vorteil: mit dem [Back]-button kann man zum vorigen Hilfetext zurueck, denn
in Wirklichkeit steckt ja ein Datensatz dahinter. Bisher ist es so, dass
man die vorher angezeigten Hilfetexte nicht mit [Back] zurueckholen kann,
denn [Back] holt den vorhergehenden Satz aus der Ergebnismenge "Vorher an-
gezeigte Daten".
Extremfall: die Datenbank besteht eigentlich aus lauter RTF-Texten, und 
die Datensaetze enthalten alle eine #9zz und den Namen einer solchen
Textdatei. Auf solche Weise koennte man ein Dokumentationssystem aufbauen.

Eine andere Moeglichkeit: Das AutoFLEX enthaelt eine "display"-Anweisung.
Das koennte man nutzen, damit bei dem Durchgang durch die Ergebnismenge
immer nur eine knappe Anzeige kommt, z.B. ohne Nachladungen, aber wenn
definitiv auf einen Satz zugegriffen wird, kommt ueber die "display"-
Anweisung die volle Anzeige.

Erfahrungsgemaess wird es ganz schnell den Wunsch geben, einen AutoFLEX eben
doch IMMER ausfuehren zu lassen, AUCH wenn gerade Index oder Kurzliste
aktiv sind, z.B. eben gerade bei Hilfesystemen. Nun gut, auch das ist
vorgesehen: man setze dann den auszufuehrenden Befehl in #uX; statt #uX:
Was man da hineinpackt, muss man sich aber gut ueberlegen: Etwa ein "ask" 
oder "form"-Befehl waere unsinnig, "yesno" oder "message" ebenfalls.
Aber "help", "display", "variable", "insert", "download" machen Sinn.

Wer jetzt noch nicht perPLEX ist, kann sich als Naechstes (schreibt man das
jetzt gross oder nicht?) auf die Vorstellung einer einfachen ORDER-Loesung 
auf FLEX-Basis freuen ...

MfG B.E.


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