Weitere Ausgabe starten

Dieses Skript zeigt, wie man aus einem Skript ein weiteres PRINT+PLUS-Ausgabeformat startet. Dies kann zum Beispiel sinnvoll sein, wenn man ein eben erstelltes Dokument mit einem Text-Exporter via Mail versenden will oder, wenn durch ein Skript-Exporter gerade Datensätze erstellt wurden, die dann anschließend direkt in einem Dokument verarbeitet werden sollen.

Konfiguration

  • Dieses Skript kann grundsätzlich mit allen Exportern verwendet werden.

  • Das Skript wird typischerweise als AfterClosingDocument ausgeführt, d.h. nachdem die erste Ausgabe beendet ist.

Ideen

  • Im AfterClosingDocument-Event ist das Dokument fertig generiert und abgespeichert und geschlossen. Es kann jetzt eine weitere Ausgabe stattfinden.

  • In diesem Beispiel wird für den gleichen Datensatz eine Ausgabe gestartet mit dem Namen MEIN FORMAT

Skript

// Version 5
namespace Ruthardt.PrintPlus.Skripting
{
	using System.Collections.Generic;
	using Ruthardt.PrintPlus.Model.Interfaces;
	using Ruthardt.PrintPlus.Export.UI;

	public class ApiExample : IScriptAction
	{
		public void Execute(IPrintContext printContext, ICurrentContext currentContext, IChildContext childContext)
		{
			// Die Exporter-API ist darauf ausgelegt auch via Reflection leicht aufgerufen zu werden, daher verzichtet sie bewusst auf erweiterte Datentypen wie Enums und verwendet Strings.
			ExporterApi.Export(
					"MEIN FORMAT",  			// Welche PRINT+PLUS-Ausgabe soll gestartet werden
					printContext.ExportDirectory.FullName,	// In welchem Ausgabeverzeichnis soll gearbeitet werden, hier einfach das aktuelle
					"PDF", 					// Welches Dateiformat soll ausgegeben werden ("PDF oder "Default")
					false, 					// Soll der Filterdialog nochmals angezeigt werden
					"CurrentDatarecord", 			// Welcher Filtertyp soll im Filterdialog ausgewählt sein ("CurrentDatarecord", "CurrentQuery", "CompleteList", "CurrentSubrecords")
					null, 					// Bei CompleteList im Filterdialog zum Beispiel noch einen fixen Filter oder bei CurrentSubrecords die Angabe welches Beziehungsfeld
					"Adressen", 				// Zu welcher Tabelle gehört das Export-Format
					new List<object>()			// Welche IDs der Tabelle sollen ausgegeben werden, hier einfach der aktuelle Datensatz
					{
						currentContext.Data.CurrentKey
					});
		}
	}
}

Last updated