Der Report enthält Seiten im Format 80, DINA4, PORTRAIT (quer=False), bzw. LANDSCAPE (quer=True) (siehe NewPage()). Es werden so viele Seiten erzeugt, wie zum Ausgeben aller Tupel aus R nötig sind. Die auf eine Seite passenden Zeilen werden durch SetPageNetto() definiert. Wenn die durch tupfunc zurückgelieferte Position diesen Nettobereich nach unten verlässt, wird eine neue Seite begonnen.
Die Rahmen der Seiten, also der Anteil von ihnen, der nicht von den Tupeln
abhängt, wird über die Azur-
Die Tupel werden über die Funktion tupfunc auf einer Seite ausgegeben.
Diese muss den Parameter Tupel tup haben. Pro Tupel
von R wird diese Funktion einmal aufgerufen. Die Inhalte der Tupel werden
mit TextOnReport() ausgegeben. Die Zeilen sind in Zellen eingeteilt,
die durch contour definiert werden, im Beispiel ist die gesamte Zeile eine
Zelle. Wenn die Ausgabe in die letzte Zelle einer Zeile erfolgt ist, wird
automatisch die nächste Zeile begonnen. Sind die Zeilen einer Seite
aufgebraucht, wird automatisch eine neue Seite angebrochen.
Mit der Funktion Zeilenumbruch() wird explizit eine neue Zeile
begonnen, mit Seitenumbruch() eine neue Seite.
Wenn das letzte Tupel einen Seitenumbruch veranlasst hat (durch
Seitenumbruch(), Zeilenumbruch(), ZeilenumbruchAb()
oder dadurch, dass die letzte Ausgabe mit TextOnReport() in die
letzte Zelle der Seite erfolgt ist), würde eine (außer dem Header) leere
Seite angehängt. Dies wird automatisch unterbunden.
Siehe auch Seitenumbruch(), Zeilenumbruch(),
ZeilenumbruchAb(), TextOnReport(), AktRepPage(),
PageCursorLU() und PrintReport().
Vollständiges Beispiel:
MachHeader (Page P, String hdrstr, Real seitenr)
p1 := {1,1}
p2 := P.PageMaxPos() - {1,1}
P.FrameOnPage (p1, p2, 0.01)
p3 := {p2.XKoo(), p1.YKoo()-1}
P.DrawTextOnPage (p3, "Seite "+seitenr.GStr(), NORMAL, "RECHTS")
p4 := {(p1.XKoo()+p2.XKoo())/2, p2.YKoo()+0.2}
P.DrawTextOnPage (p4, hdrstr, NORMAL, "CENTER")
netto := GeoRange ({1.5, 1.5}, p2 - {0.5,0.5})
P.SetPageNetto (netto)
END
DrawTupel (Tupel tup)
FORALL feld IN tup
txt := tup.GetText (feld)
IF (feld="ORT")
typ := HALFSMALL+BOLD
ELSE
typ := HALFSMALL
ENDIF
TextOnReport (feld, typ, "Links")
TextOnReport (txt, typ, "Links")
ENDFOR
# Trennlinie zeichnen
P := AktRepPage()
y := YKoo(P.PageCursorLU()) - 0.2
range := P.PageNetto()
x1 := XKoo(range.RangeLU())
x2 := XKoo(range.RangeRO())
DrawLineOnPage (P, {x1,y}, {x2,y}, 0.01)
Zeilenumbruch()
Zeilenumbruch()
END
AZUR ()
R := OpenRel("kerndaten")
ueber := "Stammdaten aller Stationen"
Rep := RelToReport (R, False, "3.5,19", 0.4, ueber, 1, "MachHeader", "DrawTupel")
Rep.PrintReport ("derreport.pdf", "PDF")
END
toposoft 31.10.2025