Register "Skripte"
Last updated
Last updated
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.
mehr Details siehe: Skript-Events
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/