Register "Skripte"
Das Einbinden von Skripten in den Exportvorgang ist optional und kann übersprungen werden.
Mit Skripten können Sie dem Export zusätzliches Verhalten hinzufügen, das an von Ihnen ausgewählten Schritten im Export ausgeführt wird. PRINT+PLUS füllt beim Erstellen der Skripte diese mit der Grundstruktur eines PRINT+PLUS-Skripts. Neu erstellte Skripte haben noch kein Verhalten und werden Ihre Ausgabe nicht beeinflussen. Skripte werden mit der Sprache C# geschrieben.
Um ein Skript zu bearbeiten oder zu erweitern, werden Kenntnisse in C# vorausgesetzt. Skripte können auch von Ihrem cobra Partner oder von uns individuell für Sie angefertigt werden – bitte fragen Sie nach.
Um ein neues Skript hinzuzufügen klicken Sie auf „Hinzufügen“.
Geben Sie im Eingabefeld von „Dateiname“ entweder einen einfachen Dateinamen (z. B. „BelegPrefill“) oder einen relativen Pfad (z. B. „MeineBelege/Skripte/BelegPrefill“) an, oder suchen Sie über den „Durchsuchen“-Button nach bereits vorhanden Skripten. Die Dateiendung kann bei neuen Skripten weggelassen werden. PRINT+PLUS fügt in diesem Fall eine Dateiendung an. Neue Skripte werden wie Vorlagen im Vorlagenorder abgelegt.
Über „Typ“ legen Sie fest, wann genau während des Exportvorganges das Skript ausgeführt werden soll.
Die Eigenschaften des Skripts können im Code-Editor bearbeitet werden. Im linken Feld befinden sich die Felder der konfigurierten Tabelle dieser PRINT+PLUS-Aufgabe.
Man kann links die Feldnamen anklicken – beim Rechtsklick geht ein Kontextmenü mit zusätzlichen Funktionen auf. Diese werden automatisch in den Skriptbereich eingefügt.
Es besteht ebenfalls die Möglichkeit dem Skript Referenzen hinzuzufügen. Damit können Funktionen von externen Programmbibliotheken verwendet werden.
Typ von Skripten
Hier finden Sie eine Auflistung der Typen. Diese werden von allen Exporter-Typen, bis auf Skript-Exporter, verwendet. Der Skript-Exporter bildet hier eine Ausnahme und verwendet nur die markierten Typen.
Typ | Ausführung des Skriptes erfolgt: | Skript-Exporter |
BeforeFirstDocument | Wird als erstes ausgeführt. Es sind weder Daten geladen noch Dokumente erstellt. | X |
AfterCurrentRowsLoaded | Nachdem die Datensätze der konfigurierten Haupttabelle geladen wurden. | X |
BeforeLoadData | Vor jedem vollständigen Laden eines Datensatzes. | X |
AfterLoadData | Nach dem vollständigen Laden eines Datensatzes, inklusive konfigurierter über- und untergeordneter Tabellen. | X |
BeforeOpenTemplate | Bevor die definierte Vorlage zum Ersetzen der Platzhalter geöffnet wird. |
|
AfterOpenTemplate | Nachdem die definierte Vorlage zum Ersetzen der Platzhalter geöffnet wurde. |
|
BeforeOpenChildTemplate | Vor dem Öffnen einer Vorlage einer untergeordneten Tabelle. |
|
AfterOpenChildTemplate | Nachdem eine Vorlage für eine untergeordnete Tabelle geöffnet wurde. |
|
BeforeFillChildDocument | Bevor die Platzhalter einer Vorlage für eine untergeordnete Tabelle ersetzt werden. |
|
AfterFillChildDocument | Nach dem die Platzhalter in einer Vorlage einer untergeordneten Tabelle ersetzt wurden. |
|
BeforeFillDocument | Nachdem die Dokumente für die untergeordneten Tabellen erstellt wurden, aber bevor die Hauptvorlage mit Daten befüllt wird. |
|
AfterFillDocument | Nachdem die Hauptvorlage mit Daten befüllt wurde, das Dokument fertig erstellt. |
|
BeforeSavingDocument | Bevor das erzeugte Dokument gespeichert wird. |
|
AfterSavingDocument | Nachdem das erzeugte Dokument gespeichert wurde. |
|
AfterClosingDocument | Nachdem das Dokument ggf. im DMS oder erzeugtem Kontakt abgelegt wurde und das Dokument geschlossen wurde. |
|
AfterLastDocument | Nachdem das letzte Dokument erstellt wurde. | X |
BeforeCreateMasterDocument | Bevor alle Dokumente im Listendokument zusammengefasst werden. |
|
AfterCreateMasterDocument | Nachdem alle Dokumente im Listendokument zusammengefasst wurden. |
|
In Kapitel 6.5 finden Sie den Hinweis, mit einer eigenen Skriptlogik eigene Platzhalter zu erstellen. Eigene Platzhalter werden durch im Skript angegebene Logik ersetzt. Das nachstehende Beispiel verdeutlicht die Ersetzung eines eigenen Platzhalters für den Fall des verwendeten Exportertyps „WordInterop“.
// Version 4 namespace Ruthardt.PrintPlus.Skripting { using Ruthardt.PrintPlus.Export.WordInteropExporter; using Ruthardt.CobraFramework.Ado; using CobraBase.Functions.Access.Ado; using System; using Ruthardt.PrintPlus.Export.WordInteropExporter; using Microsoft.Office.Interop.Word; using Ruthardt.PrintPlus.Model.Interfaces; /// <summary> /// AfterFillDokument /// </summary> public class DatumSetzen : IScriptAction { public void Execute(IPrintContext printContext, ICurrentContext currentContext, IChildContext childContext) { // Jetzt im Dokument Platzhalter ersetzen in Form [#text#] var wm = ((WordInteropModul)printContext.ExportApplication); wm.ReplacePlaceholders(ReplacePlaceholder, null,
(Document)currentContext.ExportDocument, "[#", "#]"); }
/// <summary> /// Die Logik um die Platzhalter zu ersetzen /// </summary> private string ReplacePlaceholder(string wordPlaceholder, object placeholderRange, object tag) { if (wordPlaceholder.Equals("Datum", StringComparison.OrdinalIgnoreCase)) { return DateTime.Now.ToString("dd.MM.yyyy"); } return null; } } }
Weitere Beispiel-Skripte finden Sie unter https://www.plustools.eu/printplus/skriptvorlagen/
Last updated