[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