Allgemeine Beschreibung des Druckaufbaus
Der Aufbau der Druckformulare ist zellenorientiert (vergleichbar mit Excel-Tabellen). Zellenüberschneidungen können nicht gedruckt werden! Die Zellendefinitionen erfolgen von links oben nach rechts unten.
Eine Seite ist in drei Bereiche aufgeteilt:
- Kopfbereich: (definiert in der Funktion header()). Hier sind für die erste Seite die Bereiche für Adresse und Absender festgelegt. Sie wird immer nach einem Seitenwechsel ausgeführt.
- Druckbereich: Hier werden Text und die einzelnen Positionen gedruckt. In diesem Bereich dürfen nur Zelleneigenschaften gesetzt werden und Zellenzuweisungen erfolgen.
- Fußbereich: (definiert in der Funktion footer()). Hier werden Seitenumbrüche und Überträge berechnet. Sie wird immer vor einem Seitenwechsel ausgeführt.
Beispiel für ein Setzen von Zelleigenschaften:
cellprops (A_CENTER, F_BOLD, SLANT, C_FOR, C_BACK, C_LINE, L_WIDTH, 0, PREC);
hier gelten folgende Zellenattribute für alle nachfolgenden Zellenzuweisungen solange bis neue gesetzt werden:
- A_CENTER: Text in der Zelle wird zentriert dargestellt;
- F_BOLD: Text wird in der Schriftart (Font) „Bold“ dargestellt;
- SLANT: beschreibt den Neigungswinkel der Schrift; hier keine Neigung;
- C_FOR: Vordergrundfarbe der Zelle;
- C_BACK: Hintergrundfarbe der Zelle;
- C_LINE: Rahmenfarbe der Zelle
- L_WIDTH: Liniendicke;
- 0: Standardeinstellung: keine Linie um die Zelle;
- PREC: Darstellung der Nachkommastellen von float-Zahlen; hier keine;
Die Funktion nextcell() generiert eine Zelle und schließt immer an die vorherige Zelle an:
nextcell (cell_ypos, cell_xpos, print_width * 100, S_BIG, VSPACE);
- print_width: Zellenbreite; hier über die ganze Seitenbreite; (print_width*50 generiert eine Zelle über die halbe Seitenbreite)
- S_BIG: Schriftgröße; hier groß;
- VSPACE: definiert einen Raum innerhalb der Zelle für die Schrift (innerer Zell-Rahmen)
Die Zuweisung eines Inhalts in diese Zelle erfolgt mit der Zeile:
curcell = <Inhalt>;
wobei der Inhalt ein Text sein kann, der in der Datei mxform.<modulname> verwaltet wird und
einer Zahl zugeordnet wurde (z.B. flangstring (1029,
)), oder ein Feldinhalt (z.B.
atrk.ATNR_ATRK_ATRK.m).