Vor Versand der Email eine Abfrage erstellen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
Martel
Beiträge: 3
Registriert: 10.03.2015, 08:36

Vor Versand der Email eine Abfrage erstellen

Beitrag von Martel » 12.03.2015, 15:32

Hallo Gemeinde,

vielen Dank für eure ganze Arbeit hier. Ich wurde ins kalte Wasser geschmissen und musste/darf nun mit dem LCD rum (f)werkeln.

Das klappt soweit ganz gut, aus diesem Forum habe ich mir folgendes Script zusammen gesucht (Teile)

Was mir fehlt:

- Es erscheint ein Hinweis auf nicht ausgefüllte Felder.
Der User soll die möglichkeit haben sich zu entscheiden ob er:

weiter bearbeitet
oder
die Email trozdem versendet.

Ich habe aber keine Ahnung wie ich in diesem Dialog eine Auswahl anlege. Es dreht sich um den ersten Teil des Codes.

- In einem Satz - Der User darf soll die Email dennoch schicken dürfen.

Code: Alles auswählen

RM_Specification.#subform[8].SF.Button1::click - (JavaScript, client)





var Valid = true;
var Sammelmeldung = "";
for(var i = 0; i < xfa.host.numPages; i++){
	var oFields = xfa.layout.pageContent(i, "field");
	var nodesLength = oFields.length;			
	for(var j = 0; j < nodesLength; j++){
		var oItem = oFields.item(j);
		
		if(oItem.ui.oneOfChild.className != "button" & oItem.rawValue == null | oItem.rawValue == ""){
			Valid = false;
			Sammelmeldung = Sammelmeldung + oItem.name + "n";			
		}
	}
}
if(Valid){

// Get the field containers from each page.
for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) { 
var oFields = xfa.layout.pageContent(nPageCount, "field");
var nNodesLength = oFields.length;
// Set the field property.
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {
oFields.item(nNodeCount).access = "readOnly";
}
}

	event.target.mailDoc({
		bUI: false,
		cTo: "XXXXX",
		cSubject: "XXXX", // Text erscheint in der Betreffzeile
		cMsg: "Please finde attached the full filled form.",   // Text erscheint in der E-Mail
		cSubmitAs: "PDF"   // oder "XML", je nachdem
			});
}
else{
	app.alert("Folgende Felder wurden nicht ausgefüllt.nn" + Sammelmeldung + "nBitte füllen Sie diese Felder vor Versand der E-Mail vollständig aus.",1);
}

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Vor Versand der Email eine Abfrage erstellen

Beitrag von armine » 13.03.2015, 09:30

var Sammelmeldung = "" ;
for (var i = 0; i < xfa.host.numPages; i++){
var oFields = xfa.layout.pageContent(i, "field");
for (var j = 0; j < oFields.length; j++){
var oItem = oFields.item(j);
if (oItem.ui.oneOfChild.className != "button" & oItem.ui.oneOfChild.className != "checkButton" & !oItem.rawValue & oItem.presence == "visible" & oItem.parent.presence == "visible"){
Sammelmeldung += "Seite " + (i+1) + ", " + (oItem.caption.value.text.value || oItem.assist.toolTip.value || oItem.name) + "\n" ;
}
}
}

if (!Sammelmeldung || xfa.host.messageBox("Folgende Felder wurden nicht ausgefüllt.\n\n" + Sammelmeldung.replace(/_/g," ") + "\nWollen Sie diese Felder vor dem Mailversand noch ausfüllen?", "Formular unvollständig ausgefüllt", 2, 2) == 3) {
event.target.mailDoc({
bUI: true,
cTo: "test@test.de",
// cCc: "test2@test2.de;test3@test3.de",
// cBcc: "test4@test4.de",
cSubject: "Testnachricht",
cMsg: "Anbei sende ich Ihnen die Datei „" + event.target.documentFileName + "” zur Kenntnisnahme.",
}) ;
}

Martel
Beiträge: 3
Registriert: 10.03.2015, 08:36

Vor Versand der Email eine Abfrage erstellen

Beitrag von Martel » 13.03.2015, 11:20

Vielen Dank schweigsamer Admin,

das funktioniert wunderbar!



armine hat geschrieben:var Sammelmeldung = "" ;
for (var i = 0; i < xfa.host.numPages; i++){
var oFields = xfa.layout.pageContent(i, "field");
for (var j = 0; j < oFields.length; j++){
var oItem = oFields.item(j);
if (oItem.ui.oneOfChild.className != "button" & oItem.ui.oneOfChild.className != "checkButton" & !oItem.rawValue & oItem.presence == "visible" & oItem.parent.presence == "visible"){
Sammelmeldung += "Seite " + (i+1) + ", " + (oItem.caption.value.text.value || oItem.assist.toolTip.value || oItem.name) + "n" ;
}
}
}

if (!Sammelmeldung || xfa.host.messageBox("Folgende Felder wurden nicht ausgefüllt.nn" + Sammelmeldung.replace(/_/g," ") + "nWollen Sie diese Felder vor dem Mailversand noch ausfüllen?", "Formular unvollständig ausgefüllt", 2, 2) == 3) {
event.target.mailDoc({
bUI: true,
cTo: "test@test.de",
// cCc: "test2@test2.de;test3@test3.de",
// cBcc: "test4@test4.de",
cSubject: "Testnachricht",
cMsg: "Anbei sende ich Ihnen die Datei „" + event.target.documentFileName + "” zur Kenntnisnahme.",
}) ;
}
:D:D

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Vor Versand der Email eine Abfrage erstellen

Beitrag von armine » 14.03.2015, 00:05

Hallo Martel,

wenn du 20 Zeilen zum Zitieren findest, dann war ich nicht ganz so schweigsam – aber knapp war’s schon.

vg armine

Antworten