Seite 1 von 1

Numerisches Pflichtfeld mit 0 (Null) als zulässigem Wert

Verfasst: 19.02.2015, 14:28
von Peter_Neumann
Ich habe in einem Formular einige Pflichtfelder definiert. Ein Ausdruck ist nur möglich, wenn diese Pflichtfelder eingegeben wurden. Teilweise soll jedoch bei numerischen Feldern auch der Wert 0 (Null) die Pflicht der Eingabe erfüllen. Also, wenn bewusst 0 (Null) eingegeben wurde. Beim Öffnen des Formulars ist das Feld scheinbar leer. Tatsächlich hat es wohl doch schon den Wert Null. Deshalb fällt es mir schwer, eine Lösung zu finden. Habt Ihr eine Idee?

Numerisches Pflichtfeld mit 0 (Null) als zulässigem Wert

Verfasst: 20.02.2015, 10:34
von armine
Machs doch so:

Formular1.Seite1.Betrag::initialize - (FormCalc, client)

$.execEvent("exit")

Formular1.Seite1.Betrag::exit - (FormCalc, client)

if (HasValue($) or $ == 0) then
$.mandatory = "disabled"
else
$.mandatory = "error"
$ = null
endif

Numerisches Pflichtfeld mit 0 (Null) als zulässigem Wert

Verfasst: 20.02.2015, 11:16
von Peter_Neumann
Liebe Mandy,

vielen Dank für den Lösungsansatz. Die Pflichtfeldeigenschaft ist dadurch aufgehoben. Das hat mir schon mal ein Stück weiter geholfen. Das eigentliche Problem liegt aus meiner Sicht noch hinter der "Drucken"-Schaltfläche. Dort wird abgfragt, ob die Pflichtfelder Null oder leer sind. Hast du für diese Stelle auch eine Lösung?

Numerisches Pflichtfeld mit 0 (Null) als zulässigem Wert

Verfasst: 20.02.2015, 11:39
von armine
Wie dir aufgefallen ist, hat sich das korrekt ausgefüllte Feld der Bürde "Pflichtfeld" entledigt.
Damit kannst du so vorgehen:

:click - (JavaScript, client)

var Sammelmeldung = "" ;
for (j = 0 ; j < xfa.host.numPages; j++) {
var oFields = xfa.layout.pageContent(j, "field") ;
for (i = 0; i < oFields.length; i++) {
if (oFields.item(i).validate.nullTest == "error") {
if (xfa.host.numPages > 0) Sammelmeldung = Sammelmeldung + "Seite " + (j + 1) + " / "
Sammelmeldung = Sammelmeldung + oFields.item(i).name + ",\n"
}
}
}

if (Sammelmeldung) {
app.runtimeHighlight = true ;
xfa.host.messageBox("Es wurden nicht alle (farbig markierten) Pflichtfelder ausgefüllt:\n\n" + Sammelmeldung.replace(/_/g," ") , "Debugging", 3) ;
xfa.event.cancelAction = 1 ;
} else {
gesamt.access = "readOnly" ;
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.",
}) ;
gesamt.access = "open" ;
}

Statt zu mailen kannst du auch drucken.

Numerisches Pflichtfeld mit 0 (Null) als zulässigem Wert

Verfasst: 23.02.2015, 11:57
von Peter_Neumann
Liebe Armine,

vielen Dank. Durch deine Hilfe konnte ich das Problem lösen.

Viel Grüße von

Peter