Trick 63: Das
Wichtigste zuerst
Beim Start sofort den
Index erscheinen lassen
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...