E-Mail mit dynamisch voreingestellten Werten und Prüfung vor dem Absenden

In diesem Beispiel wird gezeigt, wie Sie:

Tabellen und Spalten

VTAB_DruckerDrucker-Tabelle
VCOL_invnrSpalte Inventarnummer
ANWrimacon-Tabelle Mitarbeiter
VTAB_Drucker_ANWn:m-Tabelle zwischen Drucker und Mitarbeiter
VTAB_Drucker_ANW.VCOL_DruckerSpalte Drucker
VTAB_Drucker_ANW.VCOL_ANWSpalte Mitarbeiter


Aufgabe

Nach einer bestimmten Aktion (in unserem Beispiel wurde das Label "Problem melden" angeklickt) soll ein E-Mail-Formular angezeigt werden, das folgende Voraussetzung erfüllt:

Lösung

Schtitt 1: Kontaktliste dynamisch generieren

Dies erfolgt im Configurator über das Element EmailForm1 ➟ Eigenschaften ➟ andere ➟ Karte "Addressliste" ➟ Adressliste vordefinieren
Das SQL-Script kann über

      Assistent ➟ Tabelle anbinden (wird automatisch angestoßen) ➟ n:m ➟ Mitarbeiter ➟ Übernehmen

generiert werden.

Ergebnis:

select distinct [alias3].ANW_Name1 + ' ' + [alias3].ANW_Name2  as [name], [alias3].ANW_EMAIL as [mail]  from VTAB_Drucker [alias1]
inner join VTAB_Drucker_ANW [alias2] on [alias2].VCOL_Drucker=[alias1].VTAB_Drucker_ID and [alias2].VTAB_Drucker_ANW_MDT_ID=1
inner join ANW [alias3] on [alias3].ANW_ID=[alias2].VCOL_ANW and [alias3].ANW_MDT_ID=1
where 1=1 and [alias1].VTAB_Drucker_MDT_ID=1 and [alias1].VTAB_Drucker_ID=$ObjID

Schitt 2: Empfänger, Betreff und Inhalt setzen

Dafür wird in Javascript ein Ereignis definiert, das alles anstößt (z.B. Button ➟ onPress)

var RU=rimacon._userform;

// Email-Maske öffnen
RU.EmailForm1.openDialog(false);


// Betreff setzen
RU.EmailForm1.setSubject("Problem mit Drucker: SN=" + RU.VCOL_invnr.getValue());

// Optional: Aktivieren Sie die nächste Zeile, wenn der Webuser den Betreff nicht ändern darf.
// RU.EmailForm1.setSubjectEnabled(false);

// Inhalt setzen
RU.EmailForm1.setContent(
"Hallo,\r\n" +
"\r\n" +
"ich habe folgendes Problem:\r\n" +
"\r\n" +
"\r\n" +
"MfG\r\n" +
RU.MainForm.getCurrentWebuserName()
);

// wichtig: Die Kontaktliste wird erst nach openDialog generiert , d.h. kopieren ist erst jetzt möglich und nicht vor openDialog.
RU.EmailForm1.copyAddressBookToRcptText();

Im Webinterface
    

Schritt 3/3: Betreff vor dem Absenden prüfen

Dies erfolgt im Configurator über das Element EmailForm1 ➟ customValidator:

var RU=rimacon._userform;

if (RU.EmailForm1.getSubject().indexOf(RU.VCOL_invnr.getValue()) < 0)
{
	alert("Betreff muss die Inventarnummer enthalten!");
	return false;
}

return true;