AW: [Allegro] Automatische Numerierung

Fischer, Robert fischer at larch.verwalt-berlin.de
Do Apr 21 07:14:38 CEST 2005


Liebe Frau Koczian,

Sie schrieben:

> Es ist ja möglich, die automatisch vergebene Nummer in eine andere
> Kategorie zu stecken als die, die in cg angegeben ist (durch eine
> Nummern-Konstruktion, die eine Kategorienummer enthält). Dann wird die
> normale Numerierungs-Kategorie, etwa die #00, beim ersten Speichern des
> neuen Satzes nicht gefüllt.
>
> Ändert man aber später irgend etwas anderes an diesem Satz, dann wird
> die in cg angegebene Kategorie doch noch belegt. Das heißt, diese
> Kategorie müsste bei jeder Korrektur eines solchen Datensatzes neu mit
> einem Inhalt belegt werden, der die Abspeicherung verhindert
> (Nummernkonstruktion mit ungültiger Kategorienummer, ich finde die
> Handbuchstelle gerade nicht wieder).
>
> Zu vermeiden ist das wohl kaum. Außer Vorkehrungen in onput.flx sehe ich
> keine Abhilfe, und diese Vorkehrungen muss wohl jeder für sich treffen,
> der den beschriebenen Mechanismus benutzt.

zu Ihrem Dilemma mit der autom. Nummernvergabe bei Nachbearbeitung kann ich
2 Ideen beisteuern:

1. Im Hilfsabschnitt des Indesparameters kann man einer Belegung der
Kategorie entgegensteuern.

2. Im Bearbeiten-Formular koennte man die Kategorie vorbelegen nach dem
Muster: Verschiebe den Inhalt in eine ungueltige Kategorie.

Dazu habe ich ausfuehrlich am 01.02.2005 auf die Fragen von Herrn Wolf und
Herrn Allers was geschrieben:
<<
die Nuss zu knacken, einen Datensatz zu speichern, in dem #00 nicht besetzt
ist, aber in der CFG mit ci und cg eine automatische Vergabe von
Identnummern zu ermoeglichen, ist doch nicht ganz einfach:

Herr Wolf schrieb:
> > 1. In der CFG habe ich definiert, daß jeder neue Datensatz
> > automatisch eine neue ID erhält: cg00 und ci9b?6. Damit erhält auch
> > jeder Datensatz eine neue Nummer.
>
> > 2. In einem Flex, mit dem der neue Datensatz erstellt wird habe ich
> > dann für bestimmte Datensatztypen definiert, daß bei diesen diese #00
> > NICHT besetzt werden soll:
> > Ich bekomme diese Kategorie #00 einfach nicht weg. Warum nicht ?

Herr Allers meinte:
...

> Eben wegen cg00.
>
> Ich helfe mir so, indem ich was Definiertes, z.B. ein Minuszeichen,
> reinschreibe, das man dann auch besser sieht und abfragen kann.

>Herr Eversberg schrieb dazu:
>Die #00 hat aus historischen Gründen die Sondereigenschaft, daß man sie
nicht
>leicht wegkriegt. Sondern man kann sie, anders als alle anderen, auch leer
>eingeben.
>Im FLEX geht's aber anders, und zwar ganz einfach mit einer Ersetzung:
>_#00 __

>Das ist alles!

Mich befriedigt das nicht zu 100 Prozent, sollte nach dem Ersetzen beim
Speichern nicht doch gleich wieder eine neue #00 belegt werden.

Mein Loesungsansatz ist:

im Flex:

x var " |9#75zabc?abc" \ins #00 \put \show rec

oder als Vorbesetzung (im Formular nicht getestet), als Teil im
Hilfsabschnitt der API usw. eine Belegung von #00 nach obigem Muster.
Die Pruefung mit "?" macht aus dem nackten Inhalt fuer allegro-C den
"Hingucker" ... und weg ist die #00 weil #75z ungueltig ist.
Mit der fehlenden Erneuerung des Satzes im Anzeigefeld kann ich leben.
Nach meiner Einschaetzung reicht es nicht, die #00 zu loeschen, man muss dem
ci-cg-Mechanismus eine Belegung anbieten (wie es auch im Handbuch steht),
dann funktioniert es.
<<

Mit freundlichen Gruessen

Robert Fischer
Landesarchiv Berlin
fischer AT larch.verwalt-berlin.de
*****************************************




Mehr Informationen über die Mailingliste Allegro