Vorlage aus DMS Feld holen
Dieses Skript zeigt, wie zur Laufzeit die Vorlage geändert werden kann.
D.h. in diesem Fall wird in einem Projektdatensatz über ein Dokumentfeld konfiguriert welche Vorlage als Ausgabe für einer zu diesem Projekt verknüpften Spende zur Bestätigung verwendet wird.
Skript
// Version 5
namespace Ruthardt.PrintPlus.Skripting
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Cobra.Common;
using Cobra.Common.DocumentManagement.Interfaces;
using Ruthardt.CobraBase.Functions.Access.Ado;
using Ruthardt.PrintPlus.Model.Interfaces;
public class VorlageWaehlen : IScriptAction
{
public void Execute(IPrintContext printContext, ICurrentContext currentContext, IChildContext childContext)
{
// den Projekt- oder Teilprojektdatensatz abfragen
var teilprojekt = currentContext.ParentDataByPrefix["Teilprojekt"];
// Den Pfad der hinterlegten Vorlage ermitteln
IDmsController dmsController = CobraMain.Container.ResolveType<IDmsController>();
var documentFileName = dmsController.GetDocumentFileName(teilprojekt.GetStringValue("Verdankungsvorlage"));
// Vorlage lokal kopieren
var tempPath = Path.GetTempFileName() + ".dotx";
File.Copy(documentFileName, tempPath, true);
// der Vorlage den Netzwerkpfad der Verdankungsvorlage übergeben
printContext.Config.Current.Templates.First().File = tempPath;
}
}
}