[Allegro] Fussabschnitt

Thomas Berger ThB at Gymel.com
Sa Okt 20 23:07:20 CEST 2012


Lieber Herr Wolf,

ich springe mal ein:


> Es gibt 
> 
> A. einen Fußabschnitt pro Katalogisat (Abschnitt 'F')

Nein.


> B. einen Fußabschnitt bei Listenproduktion ('#- E') bei srch.exe

Jein


Das ist alles in Handbuch 10.2.6.5.3 "Sonderteile: ..." beschrieben.

Kopf- und Fussabschnitt beziehen sich jeweils auf *Seiten*, d.h.
sie sind voellig unabhaengig vom Datensatz (bzw. auch von den
diversen Durchlaeufen fuer jeweils denselben Datensatz).

Gibt es keine "Seiten" (bei zm=0 sagt das Handbuch, zu beachten
ist m.E. aber auch fl=0), dann werden sie "am Anfang und am Ende"
ausgegeben (das "am Ende" scheint mit srch32 (?) derzeit so
nicht gegeben(??)).

#- Egal

wird meist *Endeabschnitt* genannt, primaer war er gedacht fuer
Seitenbasierte Exporte, wo man am absoluten Ende doch noch etwas
spezielles machen wollte (etwa eine Gesamtsumme ausgeben), er
hat sich aber auch fuer Endlosausgaben etabliert, weil Kopf-
und Fussabschnitte sich da als irgendwie schwer zu baendigen
herausgestellt haben (kein Fussabschnitt ohne Kopfabschnitt,
Irritationen bei #t{...}-Ausgaben, theoretisch Beschraenkung
auf 2 Zeilen, ...).

Kopf- und Fussabschnitt sind *Abschnitte* in der Parameterdatei,
sie muessen hinter den regulaeren Kategorienbefehlen stehen
und haben theoretisch fuer sich jeweils einen eigenen Satz
Sprungmarken.

Der Endeabschnitt hingegen ist eine spezielle Sprungmarke, er muss
also im "regulaeren" Teil der Parameterdatei vor den Sonderabschnitten
notiert werden.

Will man vor/nach einem Datensatz etwas tun, kann man das ueber
Konstruktionen
ak=zz+X
ganz klassisch veranstalten.


> Frage: Und was kann man bei avanti/acon machen ?

bessere Frage: Was von diesen muss man selber ausloesen und
was davon darf man nicht selber ausloesen, weil es immer noch
automatisch passiert.

Ich habe noch einmal den Thread nachgelesen, der bei
< http://sun250.biblio.etc.tu-bs.de/pipermail/allegro/2010-October/032509.html >
beginnt, und auch selber nachgedacht:

Falls es Seiten gibt, sollte alles unter Kontrolle der Parameterdatei
sein und weiterhin automatisch ablaufen, das betrifft Kopf- und Fussabschnitt.

Fundamental anders jedoch ist das Verhalten wenn es um "den Anfang"
und "das Ende" (auch: Fussabschnit auf der "letzten Seite") geht:
Laden der Parameterdatei, Oeffnen der Ausgabedatei, Beginn des Exports
einer Menge von Datensaetzen sind bei den klassischen Allegro-Modulen
eine Einheit und ihre beendenden Pendants ebenso (PRESTO war eine Ausnahme,
vgl. die Spezialsprungmarke #-_). Unter a99/acon hingegen kann man mit
diesen Operationen voellig frei jonglieren, d.h. eine Parameterdatei
erneut laden, die Ausgabedatei schliessen und wieder oeffnen, diese oder
jene Ergebnismenge oder Menge von Einzelsaetzen exportieren: Wo da
Anfang und Ende sind, kann das Programm unmoeglich erraten.

(Der Job hingegen kann schwer bis unmoeglich ermitteln, ob die Parameterdatei
zm=0 hat oder Kopf- bzw. Endeabschnitte)

M.W. ist die Implementierung (vgl. auch xexport.rtf) so, dass
1. der Kopfabschnitt immer automatisch behandelt wird (zu testen: die Zaehler
   fuer "Anfang" bei zm=0 bzw. fuer die Zeilenzaehlerei werden beim Laden der
   Parameterdatei initialisiert).
   Wenn man ihn haeufiger / explizit benoetigt:
export HEAD
   (nicht zu erwarten, dass Zaehler dadurch reinitialisiert werden)

2. der Fussabschnitt *am Ende* explizit gegeben werden muss:
export FOOT
   (der Braunschweiger srch.job tut dies allerdings nicht, wohl aber
   der recht alte print-r.flx)

3. der Endeabschnitt nie automatisch gesetzt wird und stets explizit ausgeloest
   werden muss:

a99:
var ""
export - E
write

acon:
var ""
export - E
write iV

Im konkreten Ablauf kann es durchaus Abweichungen zwischen srch und acon geben,
die "korrekte" Reihenfolge ist z.B. nicht ganz klar, wenn sowohl Fuss- als auch
Endeabschnitt gegeben sind und wenn die Parameter mit Seitenvorschueben
operieren, also "zwischen" zwei Datensaetzen jeweils Fuss- und Kopfteile
ausgegeben werden sollte man bei "dow set" noch kompatibles Verhalten
erwarten koennen, bei einer kleinschrittigen Einzelsatzverarbeitung wie bei
srch.job kann es eventuell Unterschiede geben und man sollte sich insbesondere
in Kopf- und Fussabschnitt nicht ohne Tests darauf verlassen, dass "noch der
alte" oder "schon der neue" Satz geladen ist...

viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro