[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