[Allegro] Trick 41 : Auf der Stelle ne Tabelle!
Bernhard Eversberg
ev at biblio.tu-bs.de
Mo Feb 26 12:17:42 CET 2007
Trick 41: Tabellenförmige Ausgabe
Aufgabe: Schnell mal eben ein paar Angaben als kleine Tabelle
in Textform aufbereiten.
Warum kann das ein Problem sein?
Zwar gibt es die Tabellenmethodik, sogar ab V27.1 mit einem
Schnellverfahren (siehe h table), aber manchmal kommt man damit nicht
klar, weil die Inhalte nicht fertig und schön in vorhandenen Daten-
feldern stehen, sondern erst aufbereitet werden müssen mittels
var-Befehlen, wobei dann evtl. auch noch Zahlenwerte vorher
ausgerechnet werden sollen. Manchmal will man auch das Ergebnis nicht
in Word verarbeiten, sondern nur ganz schlicht als TXT-Datei, die
aber wenigstens "ordentlich" aussehen soll, also mit Text und Zahlen
schön spaltenrichtig untereinander.
Lösung:
Hierfür sollte man zwei Kniffe kennen:
1. Textinhalt auf bestimmte Länge rechts- oder linksbündig
zurechtrücken. (Falls zu lang, dann abschneiden)
a) Rechtsbündig
Sagen wir, es steht etwas in #uxy und man will es auf eine
Länge von 20 Zeichen links mit Leerzeichen auffüllen (d.h.
in ein 20stelliges Feld rechtsbündig einstellen)
var/wri ... #uxy(0,r20)
b) Linksbündig
var/wri ... #uxy(0,20)
2. Zahl mit 2 Dezimalstellen (gerundet) in ein Feld von 12 Stellen
rechtsbündig einstellen. Die Zahl steht in #uij
var #uij
Z=
var Z2
ins #uik
...
var/wri ... #uik(0,r12)
Zuerst wird man also dafür sorgen, daß man alle Textteile in
Variablen oder Datenfeldern vorliegen hat, dann wird man mit
einem einzigen wri-Befehl diese Elemente alle hintereinander mit
den gewünschten Zahlenwerten (0,...) versehen ausgeben:
wri #uab(0,10) "/" #uac(0,20) ":" #uad(0,r15) n
Das n für "neue Zeile" am Ende nicht vergessen, denn sonst kommt
alles in eine riesenlange Zeile...
Selbstverständlich kann so ein Befehl dann in einer Schleife
vorkommen, mit der man eine Erg.Menge oder die Gesamtbank abarbeitet.
Hat man auf diese Weise eine Textdatei abc.txt fabriziert, kann man
sie mit help abc.txt ins Anzeigefeld holen oder sonstwas damit
anstellen.
[Erg.Menge abarbeiten: Schema z.B. in Fb-Lektion 13.3 oder ganz
kurz in xnext.rtf ]
Word-Tabelle:
Wenn man zwischen den Elementen statt "/" und ":" jeweils den
Code 9 einsetzt, hat man eine TXT-Datei, die man in Word einfügen
und dort in eine Word-Tabelle wandeln kann - das ist das das
Wirkprinzip der Tabellenmethodik.
Hinweis:
Die oben gezeigten Formatierungstricks sind enthalten in der
Beschreibung xcstring.rtf
Da stehen auch noch mehr Tricks, wie man seine Feldinhalte zurecht-
frisiseren kann!
Mehr Informationen über die Mailingliste Allegro