[Allegro] Trick 63: Das Wichtigste zuerst - Index sofort beim Start

Bernhard Eversberg ev at biblio.tu-bs.de
Mi Jan 9 08:38:15 CET 2008


Trick 63:  Das Wichtigste zuerst
            Beim Start sofort den Index erscheinen lassen


Aufgabe: Mit dem Start von a99 soll sich zuallererst ein Register
          auftun, und zwar natürlich ein ganz bestimmter Abschnitt.

Warum: Es kann in einer Anwendung sehr sinnvoll sein, wenn der Nutzer
        sofort beim Start eine ganz bestimmte Stelle in einem der
        Register aufgeblättert bekommt.
        Ein Anwender kann auch der Meinung sein, daß der Index das
        zentrale Konzept der Datenbank ist, und deshalb zu Beginn
        erst einmal ein Register präsentieren wollen.

Lösung:
Sagen wir, um konkret zu sein, es soll Register 3 an der Stelle
"goethe" erscheinen.
Was NICHT geht (sonst wäre dieser Trick nicht nötig), das ist, in den
_start.flx  einfach reinzuschreiben

index |3 goethe

Warum geht das eigentlich nicht? Nun, das hat mit den internen
Bedingungen zu tun, die im Moment der Abarbeitung des _start.flx
vorliegen - man erspare uns die Einzelheiten, es führt zu weit
und ist ab jetzt uninteressant.

Der Trick ist, sich das Hilfsprogramm "flex" dienstbar zu machen!
Dieses ermöglicht, einen FLEX von außen an ein laufendes a99 zu senden,
um ihn ausführen zu lassen. Das kann manuell, aber auch aus einem
Batch heraus geschehen. Wir lassen einfach a99 selber einen Befehl an
das System geben, indem wir in den  _start.flx  an das Ende schreiben
(und statt  |3 goethe  natürlich was immer Sie wollen):

open x dothis.flx
wri "index |3 goethe" n
close x
var P "flex dothis"
dos

Das ist schon alles! Die letzten 2 Zeilen lassen schlicht den Befehl
   flex dothis
ausführen. Damit wird  flex.exe  als externes Programm gestartet
und sendet von außen den vorher präparierten FLEX  dothis.flx
an a99 - und da steht genau der index-Befehl drin.
Wenn  flex.exe  dann seine Arbeit tut, sind in a99 die "internen
Bedingungen" inzwischen erfüllt, die das problemlose Aufklappen des
Registers ermöglichen.

Wichtig: In der INI-Datei darf nicht  exflex=0  stehen.
Die Berechtigung (also der Wert  access=...) spielt keine Rolle!

Jetzt können Sie natürlich drangehen und in  dothis.flx  reinschreiben,
was immer Sie wollen und am Anfang ausgeführt werden soll. Aber alles
andere außer "index" kann _start.flx ja sowieso ausführen, dafür ist
der Trick unnötig.
Mehr zum Hilfsprogramm  flex.exe:  h exflex.txt
(Darauf beruhte übrigens auch das alte RuckZuck-Konzept!)

Die allerersten Versionen von a99 waren, ironischerweise, so
gestrickt, daß zuerst ein Register erschien - aber das konnte man
nicht abschalten. Vehemente Wünsche bewogen uns, die Sache zu ändern,
aber die Möglichkeit, ein Register als erstes erscheinen zu lassen,
ging aus den genannten internen Gründen dann leider verloren und wurde
bis heute nicht wiedergefunden...






Mehr Informationen über die Mailingliste Allegro