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