[Inhalt] [Zurück] [Weiter] [Thema] [Index]

TextOnReport()


Syntax:

TextOnReport (String text, Real style, String orient)
text: auszugebender Text
style: siehe TextOnPage()
orient: LINKS, RECHTS oder CENTER

Beispiel:

TextOnReport ("Geber", BOLD, "CENTER")

Beschreibung:

Gibt text an der aktullen Cursorposition der aktuellen Seite des durch RelToReport() erzeugten Reports aus. Die Cursorposition ergibt sich aus der aktuellen Zelle und der aktuellen Zeile. Die Zellen enstehen durch den Parameter contour in RelToReport und haben eine Höhe, die durch den Parameter lineheight definiert wurde. Die erste Zelle erstreckt sich von der linken Seite des Netto-Zeichenbereiches (siehe PageNetto()) bis zum ersten Wert in contour. Alle Zeilen haben die Höhe lineheight.

Nach der Ausgabe wird die Cursorposition automatisch auf die nächste Zelle gesetzt. Ist die letzte Zelle erreicht, wird auf den Anfang der nächsten Zeile positioniert. Ist die letzte Zelle der letzten Zeile erreicht, wird automatisch eine neue Seite angebrochen.

Andere Ausgaben (z.B. Linien oder AxBoxen) statt Texten sind über diese Funktion nicht möglich. Um das zu erreichen, müssen die aktuelle Seite mit AktRepPage() und deren Cursorposition mit PageCursorLU() geholt werden.

Siehe auch Seitenumbruch(), Zeilenumbruch().

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