Q-110.829
eMail Druckvorlage und Script


Frage
Problem Man kann nun in der eMail Druckvorlage EMAIL.PRN (\david\clients\windows) Skript verwenden, um den Ausdruck entweder dynamisch zu gestalten oder komplexere Formatierungen vorzunehmen. Dies ist vergleichbar mit dem Skriptbefehl in DFML.

Man fügt das Skript in einer Sektion ##SCRIPT## ... ##/SCRIPT## ein.In dem Skript stehen drei Objekte zur Verfügung.

PrintedItem
Das ist die auszudruckende eMail als IMessageItem2 (s. API Dokumentation).

Stream
Repräsentiert den HTML-Text der Vorlage bis zu dem Punkt, an dem das Skript eingefügt wurde. Es besitzt die Methoden Append - hängt HTML Text an, Get - der HTML Text des Objekt, Set setzt den HTML Text.

BodyText
Repräsentiert den formatierten Text der eMail und hat dieselben Methoden des Stream Objekts. Darüber lässt sich für den Ausdruck der BodyText der eMail anpassen, bzw. z.B. per BodyText.Set(" "); ganz unterdrücken.

1. Beispiel:
Eigene Auswertung und Formatierung der Anhänge für den Ausdruck:

##SCRIPT##
oAttachments = PrintedItem.Attachments;
if (oAttachments.Count)
{
Stream.Append("<hr><br>");
for (i = 0; i < oAttachments.Count; i++)
{
oAttachment = oAttachments(i);
if ((oAttachments.Flags & 8) == 0)
Stream.Append("
" + oAttachment.DisplayName);
}
}
##/SCRIPT##

2. Beispiel:
Entfernt für den Ausdruck alle Grafiken aus dem BodyText.

##SCRIPT##
var strText = BodyText.Get();
var re = /<img.*?>/ig;
strText = strText.replace(re, "");
BodyText.Set(strText);
##/SCRIPT##

Produkt David Client
Datum 18.12.2012

Antwort