Beispiel FileCover
Mit der Funktion Report.fromFileCoverTemplate kann sehr einfach und schnell ein standardisiertes FileCover Template erstellt werden.
context.enableModules();
const { Report } = require("ou.sp.Report");
const docFile = context.file;
const report = Report.fromFileCoverTemplate(docFile);
context.returnType = "download:report.pdf";
context.returnValue = report.saveAsPdf().filePath;
Einige Punkte sind jedoch zu beachten!
Felder
Wird die fromFileCoverTemplate Funktion ohne Optionen ausgeführt, so werden alle Felder verwendet, die im FileCover sichtbar sind (bitte dazu Sichtbarkeit beachten!)

Reihenfolge
Die Reihenfolge der Felder bezieht sich immer der aus documents.
Die Reihenfolge in der includedFields ist irrelevant!
Sichtbarkeit
Grundsätzlich muss unterschieden werden, ob der optionale Parameter includedFields verwendet wird. Wird der includedFields Parameter angeben, so werden die Felder mit einbezogen, egal ob diese sichtbar sind oder nicht.
Ohne den includedFields Parameter, werden alle Felder aufgenommen, die folgenden Eigenschaften entsprechen:
- Sichtbar (in der Mappenansicht darstellen /
InFileView) - KEINEM Feldregister zugewiesen sind und somit im
Felder-Register (FileCover) sichtbar sind - Natürlich, nicht in der
excludedFields
Gleiche Zeile
Das Template verwendet das documents Flag "In gleicher Zeile darstellen". Ist die Option gesetzt, wird das Feld und das vorherige in der gleichen Zeile dargestellt.
Achtung diese Option wird auch bei dem includedFields Parameter verwendet. Dies kann zufolge haben, dass Felder unerwünscht nebeneinander angzeigt werden.
Optionen
includedFields
Möchte man nur ausgewählte Felder anzeigen, so kann man unter Angabe der Feldnamen, die Option includedFields verwenden.
includedFields?: Array<string>
context.enableModules();
const { Report } = require("ou.sp.Report");
const docFile = context.file;
const report = Report.fromFileCoverTemplate(docFile, {
includedFields: ["Feld1", "Feld2"]
});
context.returnType = "download:report.pdf";
context.returnValue = report.saveAsPdf().filePath;
excludedFields
Im Gegensatz zu includedFields können auch ausgewählte Felder ausgeblendet werden, wenn diese nicht auf dem PDF erscheinen sollen.
excludedFields?: Array<string>
context.enableModules();
const { Report } = require("ou.sp.Report");
const docFile = context.file;
const report = Report.fromFileCoverTemplate(docFile, {
excludedFields: ["IchNichtFeld1", "IchNichtFeld2"]
});
context.returnType = "download:report.pdf";
context.returnValue = report.saveAsPdf().filePath;
multiTableFields
Auch die MultiTable kann in einem PDF anzeigt werden. Die Implementierung ist dabei (aktuell) sehr einfach gestaltet.
Angenommen das MultiTable Gadget sieht so aus:
multiTableFields?: Array<{
fieldName: string;
columns: Array<string>;
}>;
context.enableModules();
const { TableGadget } = require("ou.sp.gadget.TableGadget");
context.returnValue = new TableGadget({
fieldName: "jsonField",
columns: {
column1: {
label: "de:Spalte1;en:Column1"
},
column2: {
label: "de:Spalte2;en:Column2"
},
column3: {
label: "de:Spalte3;en:Column3"
}
}
}).transfer();
- Nun muss der Wert aus
fieldNameübernommen werden. - Die
labelder Spalten müssen alsString-Arrayincolumnsübergeben werden.
context.enableModules();
const { Report } = require("ou.sp.Report");
const report = Report.fromFileCoverTemplate(context.file, {
multiTableFields: [{
// JSON-Feld in Mappe
fieldName: "jsonField",
columns: [
"de:Spalte1;en:Column1",
"de:Spalte2;en:Column2",
"de:Spalte3;en:Column3",
]
}]
});
showPageFooter
showPageFooter?: boolean = true
Über das optionale Flag showPageFooter kann der Fusszeile pro Seite deaktiviert werden. Diese ist standardmäßig aktiviert.

asPdf - Als Gadget anzeigen
asPdf?: boolean = true
Möchte man das FileCover als Gadget anzeigen lassen, so muss das Flag asPdf auf false gesetzt werden.
context.enableModules();
const { Report } = require("ou.sp.Report");
context.returnValue = Report.fromFileCoverTemplate(context.file, {
asPdf: false,
}).toGadget();
Standardmäßig ist das Flag true um eine valide HTML-Datei zu erstellen.