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