[Allegro] Fortbildung 6.3 : Erfassungshilfen: Der Reservespeicher

Bernhard Eversberg ev at biblio.tu-bs.de
Mo Jun 22 09:12:33 CEST 2015


                                                              08-06-2004
allegro-Fortbildung                                          13-05-2005
                                                              22-06-2015
    6    Fortgeschrittene Erfassungshilfen
    6.3    Der Reservespeicher, früher "Hintergrundspeicher"

Verwechslungsgefahr!
--------------------
Der Reservespeicher ist was ganz anderes als der Offline-Speicher!
("Hintergrundspeicher" ist ein veralteter Name für "Reservespeicher",
d.h. er meinte genau dasselbe.)

Reserve:  [gab es auch schon bei PRESTO] Mit Alt+r zu sehen
   Eine lange Liste aus lauter *einzelnen Datenfeldern*:
     Datenfelder aus vorangegangenen Sätzen + #u-Variablen

Offline:  [gab es bei PRESTO noch nicht] Mit Alt+q zu sehen
   Eine Ansammlung von *ganzen Datensätzen*:
     - Vorher bearbeitete, und
     - Neu eingelesene aus Grunddateien (.ald) oder Externdateien (.adt)
       Viele Offline-Sätze sind u.U. noch nicht abgespeichert, also beim
       Suchen noch nicht zu finden - daher der Name "Offline"

Zum Offline-Speicher siehe Lektion 13.5, aber es gibt einen noch
viel längeren und gar nicht so schlechten Text:  h off

Nun aber zum Thema *Reservespeicher* (und *nur* zu diesem)

In Lektion 5.3.2 wurde erklärt: 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.
Erfunden wurde der Res.Sp., um sowas wie ein Ersatzteillager immer bei
der Hand zu haben. Der *Phrasenspeicher* ist was ganz Ähnliches, der
Unterschied ist nur, daß im Reservespeicher komplette Datenfelder
einschließlich Kategorienummer gelagert sind, im Phrasenspeicher
dagegen beliebige Zeichenfolgen ("strings"), die an jeder beliebigen
Stelle einkopiert werden können in Datenfelder, aber sogar auch
in das Anzeigefeld.

Alt+r, das weiß inzwischen jeder(?), schaltet die Anzeige des Reserve-
speichers ein und wieder aus (daher das 'r'). Die Schrift wechselt auf
kursiv, damit man sofort merkt, was man da gerade sieht.

Magie des Punktes:
Aber nicht nur mit Alt+k kann man Felder aus der Reserve rüberholen!
Es gibt noch was Besseres: in einem FORMULAR, wenn der Cursor
in einem Feld steht, das übernommen werden kann: nur . eingeben,
also einen Punkt, und Enter - schon erscheint eine Kopie des betr.
Feldes aus der Tiefe der Reserven. Mehr dazu unten: >>ExtraTip

Wie bei DOS (wer's noch weiß: wenn man #a gegeben hatte):
Ein Reservefeld kann man bearbeiten und dann mit Enter in den
aktuellen Datensatz überführen. Hier wird die Reservefunktion
besonders deutlich.

Im Reservespeicher stehen aber nicht nur echte Datenfelder, sondern
weiter unten sieht man lauter Zeilen, die alle mit #u beginnen. Das
sind die "Nutzervariablen" (daher das u: für "user").
Diese #u-Zeilen (Felder) im Reservespeicher kann man, anders als bei
DOS, sogar bearbeiten: Enter drücken, dann erscheint das ausgewählte
Feld im Schreibfeld, dort kann man sich daran zu schaffen machen,
erneutes Enter transportiert es zurück in die Liste. Brauchbar ist
das z.B. für die Zeilen, die mit #uX beginnen, denn das sind die
zu den Flip-Buttons gehörigen Befehle. Etwas füer FLEXologen, die
online und real-time was testen wollen!

Hat man vorn die Nummer geändert, wird das Feld mit dieser 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!

#u-Variablen haben immer die Form  #uxy, das 'u' it verbindlich, xy
sind irgendwelche Zeichen, auch Sonderzeichen sind erlaubt. Mehr als
zwei gehen nicht, auch nicht bei breiteren Karegoriesystemen wie MARC
oder Pica. [Das ist eine arge Begrenzung, klar. In der FLEX-Sprache
gibt es viel bessere Variablen: $name und &name, mit fast beliebig
langen Namen. Vorteil der #u-Variablen ist, daß sie sowohl in den
Exportparametern als auch in der FLEX-Sprache verfügbar sind. So kann
man in einem Exportvorgang #u-Variablen setzen und diese hernach in
eime FLEX verwerten oder umgekehrt.]

Einige #u-Variablen haben ganz besondere Funktionen:
(natürlich ist das nicht besonders geschickt, eher unglücklich, aber
"historisch gewachsen")

#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 diese besetzt sind,
#uAU          ist ALFA eingeschaltet, wenn nicht, ist es aus.

#uOR    Belegt, wenn ORDER (1) oder ZAboM (2) initialisiert ist

#uOZ    Belegt, wenn ZAboM initialisiert ist

#ua?    Belegt mit Jahreszahlen, wenn aLF initialisiert ist
         (Jahreszahlen der geladenen Kalendersätze)

#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

#uVi    In RTF-Texten als eingebettete Variable %i verwendbar
#uzo    Wenn 000, dann ist es ein Online-Satz, 001 Offline-Satz

Die anderen werden von den Export- und Indexparametern verwendet,
aber auch von FLEX-Makros. Wer sich auf diesen Gebieten betätigt,
muß gut aufpassen, nicht dieselbe Variable für ganz verschiedene
Zwecke zu verwenden, sonst kann's Überraschungen geben! In den
StandardFLEXen wird für die Namen fast immer eine Kombination von
einem Klein- plus einem Großbuchstaben genommen, z.B. #ucW, was
aber nicht zwingend ist.

#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. Der besondere Vorteil:
  #u1 / #u2 können in JEDER Datenbank vorkommen, auch wenn sie
nicht das A-Schema hat.


 >>ExtraTip
Im DOS-Programm PRESTO ist/war es so: Wenn man einen Satz speichert,
dann werden seine Datenfelder automatisch in den Reservespeicher
kopiert. Beim nächsten Satz kann man darauf zurückgreifen, indem
man bei der Eingabe z.B. eingibt:  .40  Dann wird die #40 aus der
Reserve in den Vordergrund geholt, also in den neuen Datensatz
kopiert.
Wenn man das in a99 auch nutzen will, muß folgendes gegeben sein:
-- In der INI-Datei muß stehen
    SaveAsk=2
-- und in der FLEX-Datei  onput.flx  muß 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!)


 >>ExperTip
Es gibt einen FLEX-Befehl  transfer #nnn
Der kopiert das Feld #nnn aus der Reserve in die interne
Variable iV.
Wozu das gut sein kann, erläutert die Doku:  h xtransfe




Mehr Informationen über die Mailingliste Allegro