[Allegro] technische infos zum datensatz sichtbar machen. wie?

Thomas Berger ThB at Gymel.com
Do Apr 28 10:16:22 CEST 2016


Am 28.04.2016 um 09:13 schrieb Fischer, Thomas:
> Hallo Herr Lehmann,
> 
>>> Gesendet: Mittwoch, 27. April 2016 um 11:33 Uhr
>>> Von: "Klaus Lehmann" <lehmann_klaus at t-online.de>
>>>
>>>> kann man das nicht "statisch" anzeigen lassen? in der d-wrtf.apr?
>>>
>>> In der Exp.Sprache gibt es dafür leider keine Sondervariable und keine andere
>>> Handhabe, sich dergleichen Werte zu besorgen.
>>> Gehen könnte es nach vorläufiger Einschätzung mit einem AutoFLEX.
>>> Was das ist und wie man einen macht, steht in  h flex, Abschnitt E.
>>>
>>> B.E.
>>
>> das ist doch klar wie klossbrühe, daß ich damit nix anfangen kann ;-)
>> sorry.
>> ich bin batcher mit dos, oder skripter mit bash. des weiteren perl
>> und konsorten....
>> aber flex? no sir!
> 
> kein Problem.
> Sie setzen in die Variable #uX= (wie immer hilfreich, der Herr Berger) den Wert "X size", um einen FLEX size.flx (Umlaute und Sonderzeichen vermeidend) aufzurufen, z.B. indem sie in Ihrer _start.flx
> var "X size"
> ins #uX=
> setzen.
> 
> Dann schreiben Sie
> var jb
> ins #ujb
> in eine Textdatei, nennen sie size.flx und legen sie in das Datenbankverzeichnis.
> 
> Dann ist beim Aufruf eines Datensatzes die Parametervariable #ujb mit dem aktuellen Wert von jb belegt.
> Ich vermute, dass Sie diesen Wert suchen:
> jb 	Länge des Datensatzes in Byte (aktuelle Länge im Arbeitsspeicher)
> jf 	... in der Datei (wird schon beim Einlesen des Satzes festgestellt)
> 
> In Ihrer Parameterdatei (wahrscheinlich d-wrtf.apr) können Sie dann an geeigneter Stelle unterbringen:
> 
> #ujb y0 p'\b Größe: \b0\tab ' P{C}
> 
> und die Größe das Datensatzes wird Ihnen angezeigt.
> 
> Wenn Sie nur diese eine Größe benötigen, können Sie das Verfahren noch vereinfachen:
> Setzen Sie im _start.flx
> var "x var jb\ins #ujb"

Vorsicht, das sollte entweder als

var "x var jb\\ins #ujb"
ins #uX=

oder als

#uX=x var jb\\ins #ujb

geschrieben werden, in beiden aber mit Verdopplung des "\"


Ich hatte gestern aehnliche experimentiert, #uX= laesst sich auch in
der d-wrtf.apr setzen. wenn man auf Anzeige anlaesslich des ersten
Datensatzes verzichten mag. Man muss sich da aber ueber die
Ablaufreihenfolge im klaren sein, es ist wirklich so wie
dokumentiert:

Erst wird der Flex aus #uX= ausgefuehrt

Dann werden die Anzeigeparameter abgearbeitet

Konsequenzen:
Setzen von #uX= wirkt erst fuer den naechsten Datensatz
  (wenn man es immer auf denselben Wert setzt, ist das eher egal,
  ausser beim Ersten)

#ujb wird vor dem Ausfuehren der Parameter gesetzt, wenn man es
loescht, kommt es nicht wieder.

[Ich hatte mir beim Testen zunaechst selbst ein Bein gestellt, indem
ich in die d-wrtf.apr setzte:

#nr djb dX= p"x var jb\ins #ujb|" e"|" =X=
#ujb p66 "Größe:" E":" P98
#ujb p{'\tab '} P{C}

funktioniert nicht!]

viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro