ich habe ein Problem. Bei einem Formular sollen gewisse Felder erst beim Drucken als Pflichtfelder definiert und gemeldet werden, wenn sie nicht ausgefüllt wurden (mit dem Grund, dass die Felder nicht schon beim öffnen des Formulars rot markiert sein dürfen).
Für Textfelder funktioniert das perfekt mit folgendem Skript:
Code: Alles auswählen
var oField = Page1.Firmenname
if (oField.rawValue == "" || oField.rawValue == null){
oField.validate.nullTest = "error";
} else {
oField.validate.nullTest = "disabled"}
var oField = Page1.StrasseNr
if (oField.rawValue == "" || oField.rawValue == null){
oField.validate.nullTest = "error";
}else {
oField.validate.nullTest = "disabled"}
var oField = Page1.PLZ_Ort
if (oField.rawValue == "" || oField.rawValue == null){
oField.validate.nullTest = "error";
}else {
oField.validate.nullTest = "disabled"}
/// usw.....
// die oben als erforderlich festgelegten Felder melden, wenn keine, dann drucken od. senden (senden ist nicht aktiviert)
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.validate.nullTest == "error" && oItem.rawValue == null || oItem.rawValue == ""){
Valid = false;
Sammelmeldung = Sammelmeldung + oItem.name + "\n";
}
}
}
if(Valid){
xfa.host.print(1, "0", (xfa.host.numPages -1).toString(), 0, 0, 0, 0, 0);
} else {
app.alert("Folgende Text-Felder wurden nicht ausgefüllt.\n\n" + Sammelmeldung + "\nZum Drucken der Formulare müssen alle farbig markierten Pflichtfelder ausgefüllt oder angekreuzt sein.",1) ;
app.runtimeHighlight = true ;
xfa.event.cancelAction = 1
}
Ich kann aus Datenschutzgründen dieses Formular nicht hochladen, aber vielleicht kann mir so schon jemand was sagen? Ich könnte auch ein leeres Formular machen und nur die relevanten Felder hineinkopieren.
Vielen lieben Dank.
Kenneth