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