[Allegro] ZAboM-Zugabe: Zugangsnummern zuteilen
Bernhard Eversberg
ev at biblio.tu-bs.de
Mi Mär 12 15:03:18 CET 2008
Wie Frau Hübner schon schrieb und gestern bereits angedeutet wurde,
sind Zugangsnummern sehr lokalspezifisch.
Als Zugabe zur ZAboM-Fortbildung hier ein Rezept, das man in eigene
FLEXe einbauen kann, je nachdem, wo man es braucht. Es ist der Kern
dessen, was jetzt auch in o-rech.flx eingebaut ist, wo die ZgNr in
die Rechnung, aber auch in den neuen Bandsatz geschrieben wird.
Das Rezept ist unabhängig von ZAboM jederzeit in beliebigen FLEXen
verwendbar. (Es handelt sich um eine abgespeckte Version des schon
im GP vorhandenen nextnum.flx.)
Vergabe von Zugangsnummern
Lokale Werte
Vorher besetzen: (passiert in z-init.flx, Werte stehen in zabom.inc)
Register, wo die ZgNummern stehen:
$ZNr=|9
Präfix der Nummern im Register:
$ZNp=Z2008
Präfix der Nummern im Datensatz:
$ZNd=2008/
Beispiel einer automatischen Vergabe. Zuerst TBL sperren
set tbl lock
Eine ZgNr vergeben, sie soll in #9DG$z
perf nextnum
nun steht sie, fertig mit Praefix, in #uoY
var #uoY
ins $z-#9DG
...
Satz speichern mit Freigabe der TBL
put free
end
Unterprogramm, einfach unbesehen kopieren an das Ende des
eigenen FLEX
:nextnum
var "-2 " $ZNr " " $ZNp "999999999999A"
2 Zeilen holen, wo die hoechste Nummer stehen muesste
qrix
gefundene Zeile bearbeiten, d.h. die Zahl isolieren
var (f" " b" " e"^T")
if "" var "0"
und den Zahlenwert der letzten Nr in #uzn sichern
ins #uzn
jetzt hat man die Registereintragung ermittelt
nun noch die Zahl herausloesen, sie steht hinter dem Praefix
var $ZNp
Praefix in #uoP kopieren
ins #uoP
var #uzn(b"#uoP")
in iV steht jetzt die Nr., also 1 draufaddieren:
z=
(wenn im Index noch keine Zeile mit dem Praefix existiert,
ergibt sich z=1)
z+1
var $ZNd z
ins #uoY
#uoY enthaelt die naechste Nummer, davor #uoX$F
return
Mehr Informationen über die Mailingliste Allegro