PRINT+PLUS
  • Einleitung
  • Einrichtung
    • Installation
  • Aktualisierung
    • Aktualisierungseinführung
  • Lizenzierung
    • Lizenzierungseinführung
  • Funktionsweise von PRINT+PLUS
    • Einführung Funktionsweise
  • Gestalten von Vorlagen
    • Intro Vorlagen
    • Beispiel mit Rechnung
    • Formatierung
    • Spezielle Platzhalter für Datum, Ja/Nein-Felder, Bilder und HTML
    • Platzhalter für die Benutzerattribute von cobra CRM
    • Eigene Platzhalter
  • Einrichtung von Ausgabeformaten
    • Intro
    • Alle Einstellungen eines Ausgabeformats im Detail
    • Register "Allgemeine Konfiguration"
    • Register "Ausgangstabelle (Current)"
    • Register "Ausgangs-Vorlage"
    • Register "Übergeordnete Tabellen (Parent)"
    • Register "Untergeordnete Tabellen (Children)"
    • Register "Dokumente speichern"
    • Register "Filter-Dialog"
    • Register "Ergebnis-Verhalten"
    • Register "Skripte"
  • Ausgabe ausführen
    • Intro Ausgabe ausführen
  • AUSGABEN PER TASK AUSFÜHREN
    • Aufgaben dem Task zuweisen
    • Windows Aufgabenplanung für den Task einrichten
    • Besonderheiten in Skripten
  • Eingabemasken Steuerelement
  • Intro Eingabemasken Steuerelement
    • Steuerelement hinzufügen
  • Einbindung von Print+Plus in cobra Kampagnen
  • Intro Einbindung von Print+Plus in cobra Kampagnen
  • Grundlagen Skripting
    • C#
    • Skript-Events
    • Kontexte
    • Geladene Daten verwenden
    • Geladene Daten verändern
    • Datensätze anlegen
    • Eingabemaske öffnen
    • Eigene Werte ergänzen (Custom Values)
  • Beispielskripte
    • Nummer vergeben
    • PDF-Formulare füllen
    • PDF-Dokumente zusammenfügen
    • Generiertes Dokument via SMTP versenden
    • Weitere Ausgabe starten
    • Vorlage aus DMS-Feld holen
    • Felder für CRYPTO+PLUS verschlüsseln
    • Benutzerabhängige Drucker verwenden
    • Bilder in E-Mails einbinden
    • Zahlen in Worten ausschreiben
    • Datensatz-Bilder aus cobra einbetten
    • Ergebnisdokumente kopieren
    • Regionsspezifische Ausgabeformate
    • Andere Datenquelle-Objekte nutzen
    • DocuSign Integration
  • FAQs
    • Fehlermeldung Template konnte nicht geöffnet werden
    • DevExpress-Word-Exporter
      • Bilder in Vorlage
      • Bekannte Einschränkungen
      • Hinweise für Entwickler
  • Zusätzliches Tool im Zusammenhang mit PRINT+PLUS
    • Intro Zusätzliches Tool
Powered by GitBook
On this page
  • Konfiguration
  • Ideen
  • Skript
  1. Beispielskripte

Andere Datenquelle-Objekte nutzen

PreviousRegionsspezifische AusgabeformateNextDocuSign Integration

Last updated 1 year ago

Dieses Skript zeigt, wie man zur Laufzeit Daten simuliert, die so eigentlich gar nicht in der Datenbank stehen. Die Daten werden dazu in einem Skript geladen und dann der regulären Logik von PRINT+PLUS hinzugefügt.

Konfiguration

  • Das Skript wird als AfterLoadData ausgeführt

  • Für das Skript ist ein Unterdatensatz mit "Andere Daten" konfiguriert:

Ideen

  • Es werden C#-Objekte erzeugt, die aus anderen Quellen gefüllt werden können. Dies kann zum Beispiel ein entsprechender Dialog oder auch ein Webservice sein

  • Die C# Objekte werden als sog. ObjectView an PRINT+PLUS übergeben

Skript

// Version 5
namespace Ruthardt.PrintPlus.Skripting
{
	using System;
	using System.Collections.Generic;
	using System.Data.SqlClient;
	using System.IO;
	using System.Linq;
	using System.Windows.Forms;
	using Ruthardt.CobraBase.Functions.Access.Ado;
	using Ruthardt.CobraFramework.Ado;
	using Ruthardt.PrintPlus.Export.Context;
	using Ruthardt.PrintPlus.Model;
	using Ruthardt.PrintPlus.Model.Interfaces;
	using Ruthardt.PrintPlus.Model.Enumerations;

	public class DialogScript : IScriptAction
	{
		public void Execute(IPrintContext printContext, ICurrentContext currentContext, IChildContext childContext)
		{
			// erzeuge zwei Objekte
			var o1 = new M
			{
				SuperId = (int) currentContext.Data.CurrentKey, Message = "Meldung 1"
			};
			var o2 = new M
			{
				SuperId = (int) currentContext.Data.CurrentKey, Message = "Meldung 1"
			};

			// erzeuge jeweils eine ObjectView (Reflection-basierte Wrapper auf die Objekte)
			var ov1 = new ObjectView(o1, "SuperId"); // SuperID soll hier unser PK des Objekts sein, falls man mehrfach verschachtelt
			var ov2 = new ObjectView(o2, "SuperId");

			// Füge die Objekte in den virtuellen Context ein
			currentContext.AddChildContext("Message", ov1);
			currentContext.AddChildContext("Message", ov1);
		}
	}
}

In der Vorlage kann eine normale Untervorlage für den Unterdatensatz verwendet werden.