a99/alcarta verbesserungen

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Di Feb 23 10:39:09 CET 1999


Weitere a99-Verbesserungen
--------------------------

1. Programmaufruf
2. Abfrageliste (Teilfeld-Verbesserungen)
3. Formulare (desgl.)
4. Sonderzeichen bei Nachladung der Anzeigeparam.
5. FLEX erweitert (Ersetzungen, Schleife, Variable, Verzoegerung)
6. Beispiele (INVENT-Nachbildung etc.)

Mit den FLEX-Erweiterungen hat man nun praktisch alle Mittel zum interaktiven
Manipulieren von Feldinhalten.

1. Programmaufruf
Aufruf jetzt ohne #, also statt  a99 #<inidatei>  jetzt  a99 <inidatei>.
Aber es muss ein Pfadname sein, ein nackter Dateiname geht nicht.
Also nicht  a99 cat.ini, sondern mindestens  a99 .\cat.ini

Wenn man eine offline-Datei bearbeiten will (Typ .alg, .ald, .adt), gibt
man deren Namen statt der INI an. Es wird dann a99.ini ausgewertet, um
zusaetzlich einen Datenbankzugriff zu bieten.

-------------------------

2. Abfrageliste
Die Teilfeldabfragen funktionieren jetzt. Wenn in der unveraenderten CFG
etwas steht wie

#90 $$u"User: "

Dann wird die Eingabe als Teilfeld u an die #90 angehaengt.

-------------------------

3. Formulare
Auch hier wurde die Teilfeldbehandlung verbessert. Wenn man schreibt:

$b-#90 " Teilfeld b"

dann wird in der Maske wirklich nur der Inhalt des Teilfelds b gezeigt,
falls er existiert. Die Eingabe landet in #90 im Teilfeld b.
Wenn es aber heisst

$b+#90 " Teilfeld b"

dann erscheint der Inhalt in der Maske nicht, sondern die Eingabe wird als
zusaetzliches Teilfeld an #90 angehaengt.

Button [Reserve]: Die Kategorie aus dem Hintergrundspeicher wird einkopiert
(entspricht dem .-Befehl bei PRESTO). Bei Neuaufnahme wird jetzt, wie bei
PRESTO, vorher der aktuelle Satz in den Hintergrund kopiert, so dass man
in den Formularen ueberall mit Alt+r (statt .) kopieren kann.

-------------------------

4. Sonderzeichen
... wurden evtl. nach Neuladen der Anzeigeparameter nicht mehr umgewandelt.
Das lag am Fehlen der o.apt in der Par.Datei und wurde behoben. O.APT wird
auch in diesem Fall automatisch geladen.
Bei A99 bringt der Menuepunkt "Anzeigeparameter wechseln" jetzt wieder das
Dateiauswahlmenue statt autmatisch die Anzeigeparameter erneut zu laden.


-------------------------

5. FLEX-erweitert   [siehe FLEX.TXT fuer vollst. Beschreibung)
Die Flexsprache erhielt weitere Befehle, insbesondere zur Manipulation
von Kategorie-Inhalten. Da ist jetzt so gut wie alles moeglich.
(Die Befehle koennen uebrigens auf 3 Buchstaben gekuerzt werden. Die
Gesamtlaenge eines FLEX ist zwar 4000 Byte, aber trotzdem...)

Wichtig: es gibt eine "Interne Variable". Das ist ein temporaerer Zwischen-
speicher, der solange lebt, bis er durch einen weiteren Befehl ueber-
schrieben wird. Das geschieht durch die Befehle "ask", "date" und 
"variable". 
Die IV hat und braucht keinen Namen, das vereinfacht einiges.
Man verwendet die interne Variable in der Regel sofort in einem 
"insert"-Befehl. Will man die IV laenger aufbewahren: mit "insert #uxy" in
die Uservariable #uxy kopieren.

variable #xyz
variable #xyz$a
variable ABC
   Inhalt von #xyz (bzw. deren Teilfeld $a) in die interne Variable kopieren
   anschliessend insert ...
   Wenn ABC keine Kategorienummer ist, wird diese Zeichenkette kopiert.
   Beispiel: Will man ABC in #nnn vorn einsetzen:
   var #nnn\ins #nnnABC
variable +#xyz
variable +"abc"         ("..." nur noetig, wenn a oder c Leerzeichen)
   Inhalt von #xyz bzw. abc an die IV anhaengen. 
   Hiermit kann man beliebige Inhalte zu einer Zeichenkette verknuepfen, z.B.
   var #40        Inhalt von #40 ->IV
   var +": "      ": " anhaengen
   var +#20       #20 aenhaengen
   ins #uvt       IV als #uvt speichern

insert #xyz
   Inhalt der internen Var. in die Kat. #xyz kopieren.
   Es darf auch eine #u-Variable sein.
   Wenn man  insert #uxyABC  schreibt, wird noch ABC vor die interne 
   Variable gesetzt. Wichtig, wenn man 3- oder 4-stellige Kategorien hat:
   insert #xyz \
   sonst beginnt hinterher der Text auf Position 4 statt 5.
   
insert $a+#xyz
   Inhalt der internen Var. als Teilfeld $a an #xyz ahaengen

insert $a-#xyz
   Teilfeld a ersetzen, wenn es vorh. ist, sonst anhaengen
   Wenn die interne Variable leer ist: Teilfeld $a loeschen

Beispiel: Es soll die interne Variable hinten an die Kategorie #99 angehaengt
werden. Das geht so:
  ins #uzw\var #99\var +#uzw\ins #99
im Einzelnen bedeuten diese Befehle:
  ins #uzw      Int.Var in #uzw als Zwischenspeicher kopieren
  var #99       #99 in IV kopieren
  var +#uzw     Inhalt on #uzw dranhaengen
  ins #99       IV in #99 kopieren

Der Befehl "ask" kopiert die Nutzereigabe in die IV. Wenn man schreibt
ask +xxxxx
dann wird die Eingabe an die vorhandene IV angehaengt.
Mit einer Folge solcher Befehle und abschliessendem "ins #..." laesst sich
also auch eine Teifeld-Abfrage realisieren, die per Flip ausgeloest
werden kann, z.B. fuer so etwas wie INVENT.

Ersetzungsbefehle   
   Es gibt jetzt dieselben Ersetzungsbefehle, die es bei PRESTO schon gab:

*#nnn_ABC_XYZ_   Ersetze ABC in #nnn durch XYZ

_ABC_XYZ_        Ersetze ABC im gesamten Satz durch XYZ


next   naechsten Satz der Erg.Menge laden
prev   vorigen Satz

repeat
   Am Ende einer Befehlskette! Diese wird wiederholt, und zwar so oft, bis
   ein Befehl (next, prev) nicht ausgefuert werden kann.

sleep n
   n ist eine Anzahl Millisekunden.  sleep 1000  ist eine Sekunde 
Verzoegerung


6. Beispiel: INVENT-Nachbildung
-------------------------------

Man braucht 2 Dinge:

1. Einen FLEX in der Anzeige:
   Sagen wir, wenn #uzz besetzt ist, soll Bestandseingabe erlaubt sein.
   Dann steht an geeigneter Stelle: 
   (t69... t68 : blau unterstrichen plus Begrenzungszeichen) 

#uzz c"z" p{ C t69 "Bestand eingeben" t68 } e0
#uzz c"z" p"Bestand eingeben!" e"!" =Y~
#uzz c"z" p"x var #00\new\ins #9DF\form 6\put!" e"!" =Z~

   Die dritte Zeile enthaelt die FLEX-Befehlskette. Achtung, sie muss mit
   "x " beginnen - dadurch unterscheidet sie sich von anderen Flips.

2. Einen Abschnitt in der Formulardatei. In diesem Fall ist es der 
   Abschnitt Nr. 6 (form 6) und sieht so aus:

[Bestand, Inventarsatz]
$L-#9DG"Sigel"
$s-#9DG"Signatur"
$z+#9DG"Zugangsnummer"
$b-#9DG"Band"
$B-#9DG"Bandbez. (sort)"
$a-#9DG"Barcode"
$E-#9DG"Ausgabe"
$l-#9DG"Standort"
$n-#9DG"Kommentar"
$H-#9DG"Bestand"
$d-#9DG"Datum"
$v-#9DG"Verf.(a,k,p)"
$Y-#9DG"Jahr"


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