Oracle -> Exceldatei aus PL/SQL schreiben -> Tutorial 7
 

Tutorials

Für den Druck einer Datei kann man unter anderem Kopf und Fußzeilen angeben, sowie Seitenränder definieren. Zuständig hierfür ist:

    TYPE t_rec_printSetup  IS RECORD(
         landscape          BOOLEAN
        ,headerLeft         VARCHAR2(500)
        ,headerCenter       VARCHAR2(500)
        ,headerRight        VARCHAR2(500)
        ,headerMargin       NUMBER
        ,footerLeft         VARCHAR2(500)
        ,footerCenter       VARCHAR2(500)
        ,footerRight        VARCHAR2(500)
        ,footerMargin       NUMBER
        ,pageMarginTop      NUMBER
        ,pageMarginBottom   NUMBER
        ,pageMarginLeft     NUMBER
        ,pageMarginRight    NUMBER
        ,printTitle         VARCHAR2(20)
        ,printArea          VARCHAR2(20)
        ,fitToPage          VARCHAR2(1)
        ,printGrid          BOOLEAN
        ,printRowColHeadings BOOLEAN
        ,printBlackAndWhite BOOLEAN
        ,printDraftQuality  BOOLEAN
        );
landscape
TRUE = Querformat, FALSE oder NULL = Hochformat.
headerLeft/Center/Right
Text für Kopfzeile (siehe unten).
headerMargin
Abstand der Kopfzeile vom oberen Seitenrand
footerLeft/Center/Right
Text für Fußzeile (siehe unten)
footerMargin
Abstand der Fußzeile vom unteren Rand
pageMarginX
Seitenrand beim Druck
printTitle
Hat man Überschriften definiert, so kann es sinnvoll sein, diese beim Druck auf jeder Seite zu wiederholen, das gleiche gilt für Spalten. Will man z.B. die Zeilen 2-4 auf jeder Druckseite ausgeben, so setzt man printTitle = 'R2:R4', für Spalten entsprechend 'C1:C2' oder kombiniert 'C1:C2,R2:R4'
printArea
Druckbereich im Format 'R1C1:R33C13'
fitToPage
Auf eine Seite skalieren: Spalten (C), Zeilen (R), Ganzes Blatt (W)
printRowColHeadings
Zeilenbeschriftung A,B,... und Zeilennummern drucken! FALSE = nicht drucken, Default = TRUE
printBlackAndWhite
Schwarz/Weiß Druck TRUE = ja, Default = FALSE
printDraftQuality
In Entwurfsqualität drucken TRUE = Entwurfsqualität, Default = FALSE

Alle Abstandsangaben in cm. In der Datei selbst werden sie in Zoll gespeichert. Will man also Angaben aus dem Quelltext einer bestehenden Datei übernehmen, so sind diese mit 2,54 zu multiplizieren.

Kopf- und Fußzeile

Kopf- und Fußzeile sind jeweils in drei Bereiche aufgeteilt - Left/Center/Right. Der Text wird entsprechend jeweils linksbündig, zentriert und rechtsbündig ausgerichtet. Zur Textformatierung und für bestimmte Variablen sind Konstanten definiert, weitere Formatierungen werden aktuell nicht unterstützt. Die Länge des Textes (inklusive Steuerzeichen) ist auf ca. 800 Zeichen begrenzt.

Achtung: dieses Feature ist abhängig von der Sprache des Betriebssystems. Aktuell funktioniert nur die deutsche Ausgabe.

c_mtPage
aktuelle Seitennummer
c_mtPageTotal
Anzahl Seiten
c_mtTime
aktueller Zeitstempel
c_mtDate
aktuelles Datum
c_mtPath
Pfad zum Speicherort der Datei
c_mtName
Dateiname
c_mtTab
Name des Arbeitsblattes
c_mtFontSize8/10/12/14
Schriftgröße
c_mtFontBold
Schrift fett
c_mtFontItalic
Schrift kursiv
c_mtFontBoldItalic
Schrift fett und kursiv
c_mtFontStandard
Schrift normal (nicht fett oder kursiv)

Beispiele

Angabe der Seite x von y rechts unten

footerRight := 'Seite '||xml_spreadsheet.c_mtPage||
    '/'||xml_spreadsheet.c_mtPageTotal;

Titel mittig mit fettem und normalem Text, sowie Zeilenumbruch

headerCenter := xml_spreadsheet.c_mtFontBold||'Fetter Text'||CHR(10)||
    xml_spreadsheet.c_mtFontStandard||'mit normaler zweiter Zeile';