Fortb. 6.3 nochmal
Bernhard Eversberg
ev at buch.biblio.etc.tu-bs.de
Fr Jun 11 08:12:40 CEST 2004
Keiner hat's gemerkt - anscheinend hat die Beachtung der
Fortbildung stark nachgelassen. Wir hatten in 6.3 den wichtigen
Punkt "Punkt" vergessen: Wie man durch Eingabe eines Punkts
Felder aus dem Hintergrund hervorzaubern kann.
Hier die entsprechend ergaenzte Lektion.
Ausserdem ist der Gesamttext aktualisiert:
http://www.allegro-c.de/fb/
Fortbildungskurs
6 Fortgeschrittene Erfassungshilfen
6.3 Der Hintergrundspeicher
Sie erinnern sich an 5.3.2: Mit Alt+k ausgewählte Felder aus dem
momentanen Datensatz herauskopieren in den Reservespeicher, um später
darauf zurückzugreifen mit Alt+r und erneut Alt+k.
"Hintergrundspeicher" ist nur der alte Name für "Reservespeicher",
er ist also genau dasselbe.
Er wurde erfunden, um sowas wie ein Ersatzteillager immer bei der
Hand zu haben. Der Phrasenspeicher ist was ganz Ähnliches, der
Unterschied ist nur, dass im Reservespeicher komplette Datenfelder
einschließlich Kategorienummer gelagert sind, im Phrasenspeicher
dagegen beliebige Zeichenfolgen ("strings"), die an jeder beliebigen
Stelle einkopiert werden können.
Alt+r, das weiß inzwischen jeder, schaltet die Anzeige des Reserve-
speichers ein und wieder aus. Die Schrift wechselt auf kursiv, damit
man sofort merkt, was man da gerade sieht.
Magischer Punkt:
Aber nicht nur mit Alt+k kann man Felder aus dem Hintergrund
übernehmen! Es gibt noch was besseres: im FORMULAR, wenn der Cursor
in einem Feld steht, das übernommen werden kann: nur . eingeben,
einen Punkt also, und Enter - schon erscheint eine Kopie des
Feldes aus der Tiefe des Hintergrundes. Mehr dazu unten: ExtraTip
Was bei DOS nicht ging:
Die Zeilen (Felder) im Reservespeicher kann man sogar bearbeiten:
Enter drücken, dann erscheint das ausgewählte Feld im Schreibfeld,
dort kann man sich daran zu schaffen machen, erneutes Enter trans-
portiert es zurück in die Liste. Hat man vorn die Nummer geändert,
wird das Feld unter diese Nummer einsortiert, das alte bleibt dann
unter der alten Nummer unverändert stehen! Beseitigen kann man jede
Zeile so: Balken drauf, Entf-Taste. Ohne Nachfrage ist sie dann aber
sofort und nicht-mehr-rückholbar verschwunden!
Im Reservespeicher stehen aber nicht nur Datenfelder, sondern weiter
unten lauter Zeilen, die alle mit #u beginnen. Das sind die
"Nutzervariablen" (daher das u für "user").
Einige davon haben ganz besondere Funktionen:
#uX0 ... #uX9 : Befehle für die Flip-Buttons (9 und 10 nicht sichtbar)
#uX5 wird ausgeführt, wenn man Alt+5 drückt.
Diese Einträge bleiben über die Sitzung hinaus
erhalten, die anderen alle nicht.
#uYx Flipzeilen. Diese stellen sich dauernd automatisch ein.
#uZx Schauen Sie mal genau hin, was da steht! Es hängt immer
damit zusammen, was gerade in der Anzeige steht.
#uX= AutoFLEXe (etwas für FLEXperten)
#uX: (siehe dazu h flex, Abschnitt E)
#uX;
#uAL Wenn besetzt, ist ALFA eingeschaltet, wenn nicht, ist es aus.
#uxa Zuletzt benutzte Indexeintragung
#uxb Nummer des zuletzt benutzten Registers
#uzC Diese 3 entstehen beim FLEX-Befehl var zc,
#uzD (siehe dazu h xcstring )
#uzF
#uV1 In RTF-Texten als eingebettete Variable %1 verwendbar
#uzo Wenn 0, dann ist es ein Online-Satz, 1 Offline-Satz
Die anderen werden von den Export- und Indexparametern verwendet,
aber auch von FLEX-Makros. Wer sich auf diesen Gebieten betätigt,
muss gut aufpassen, nicht dieselbe Variable für ganz verschiedene
Zwecke zu verwenden, sonst kann's Überraschungen geben!
#u1 und #u2 sind keine Nutzervariablen, sondern Hilfsvariablen, die
ganz oben in der Satzanzeige erscheinen, nicht im Reservespeicher.
Sie gehören zum Datensatz und werden auch mit ihm gespeichert, wenn
sie vorkommen. Man kann sie normal eingeben und bearbeiten.
Sie dienen einigen internen Funktionen, vor allem in den Index-
parametern, aber auch beim Sortieren.
ExtraTip
Im DOS-Programm PRESTO ist/war es so: Wenn man einen Satz speichert,
werden seine Datenfelder automatisch in den Hintergrundspeicher
kopiert. Beim nächsten Satz kann man darauf zurückgreifen, indem
man bei der Eingabe z.B. eingibt: .40 Dann wird die #40 aus dem
Hintergrund in den Vordergrund geholt, also in den neuen Datensatz
kopiert.
Wenn man das in a99 auch nutzen will, muss folgendes gegeben sein:
-- In der INI-Datei muss stehen
SaveAsk=2
-- und in der FLEX-Datei onput.flx muss stehen
:save
copy reserve
Für die DemoBank ist das so eingestellt! Wenn Sie es für die eigene
Bank nicht wollen, also entweder SaveAsk in der eigenen INI anders
setzen oder den Befehl copy reserve aus der onput.flx rausnehmen.
(Diese Datei liegt auf dem FLEX-Verzeichnis. Kopieren auf das eigene
Datenbankverzeichnis und dort ändern!)
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