Seite 1 von 1

Pflichtfeldprüfung vor dem Druck bei bestimmten Feldern deaktivieren

Verfasst: 10.01.2019, 18:48
von JanaR2
Liebe Forumsmitglieder,

ich möchte in meinem Formular vor dem Drucken die Pflichtfelder überprüfen lassen. Einige Felder sind ausgeblendet, da diese nur bei entsprechender Antwort ausgefüllt werden sollen.
1. Beim Textfeld2 erfolgt die Meldung, obwohl das Textfeld2 nicht als "erforderlich" gekennzeichnet ist.
2. Die Meldung erfolgt auch bei den Optionsfeldern, obwohl eine Auswahl getroffen wurde.
3. Das Textfeld3 soll nur als Pflichtfeld geprüft werden, wenn die Antwort ja ist.
Kann mir bitte jemand helfen?

Vielen Dank und Grüße aus Hamburg
JanaR

Re: Pflichtfeldprüfung vor dem Druck bei bestimmten Feldern deaktivieren

Verfasst: 14.01.2019, 10:43
von armine
Willkommen im Forum, JanaR!

Entweder musst du auf unausgefüllte (also „leere“) Pflichtfelder* prüfen, oder du entziehst nach einer formalen Prüfung nach der Eingabe den Pflichtfeldstatus. Letzteres macht das Leben einfacher, weil man dabei auf die einzelnen Feldtypen eingehen kann und bei Bedarf nur noch der Pflichtfeldstatus abzufragen ist. Bei dem Vorgehen sieht man beim Bearbeiten auch leicht den Fortschritt.

Drucken sollte nicht davon abhängig sein, dass alle Pflichtfelder ausgefüllt sind. In meinem Beispiel wird vor dem Drucken eine Liste mit noch auszufüllen Pflichtfelder angezeigt und der User entscheidet, ob trotzdem gedruckt werden soll.

Vor dem E-Mail-Versand wird darauf geachtet, dass alle Pflichtfelder ausgefüllt sind und dass der aktuelle Stand der Datei auch gespeichert ist.

vg armine

*) leer (also kein „rawValue“) kann null, ein leerer String oder auch mal eine 0 sein

Re: Pflichtfeldprüfung vor dem Druck bei bestimmten Feldern deaktivieren

Verfasst: 18.01.2019, 07:40
von JanaR2
Guten Morgen Armine,

vielen Dank für deine Hilfe! Die Umsetzung in mein Formular hat geklappt.

Viele Grüße
JanaR

Re: Pflichtfeldprüfung vor dem Druck bei bestimmten Feldern deaktivieren

Verfasst: 30.01.2020, 13:15
von UsTh
Nun habe ich die Lösung meines Problems gefunden, doch in der hier eingestellten Testdatei kann ich kein JAVAscript ablesen. Gibt es auch eine Lösung dieser Art für den ADOBE Acrobat 9 Standard? ich habe mich im gesamten Forum schon wund gesucht. :roll:

Nochmalige Problembeschreibung: :arrow:
Ich habe ein mehrseitiges PDF-Formular. Darin gibt es einige Text- und Zahlenfelder die nicht ausgefüllt werden müssen. Aber manche Felder sind mit "Erforderlich" gekennzeichnet und diese müssen in jedem Fall vor einem Ausdruck ausgefüllt sein.
Dazu habe ich eine Testdatei beigefügt.

Kann mir einer von Euch helfen?

+++++++++++++++++++++++++++++++

Irgendwie so ähnlich wird die Lösung wohl aussehen, doch im Ergebnis werden hier alle leeren Felder aufgezeigt. Wie kann man es auf die "erforderlichen/rot eingerahmten Felder" beschränken? Bin leider eine JAVAniete. :(

kontrollieren();
function kontrollieren()
{
var feld;
feld=""
for (var i=0;i<this.numFields;i++)
{
var fName=this.getNthFieldName(i);
var f=this.getField(fName);
if ((f.type != "button") && (f.value.length<1) && (f.RequiredLevel != 1))
{
feld=feld + fName + "\n";
}
}
if (feld==""){
app.doc.print();
}
else
{app.alert("Bitte füllen sie vor dem Drucken alle Pflichtfelder aus.\nFehlende Felder:\n\n" + feld);
}
}

Re: Pflichtfeldprüfung vor dem Druck bei bestimmten Feldern deaktivieren

Verfasst: 01.02.2020, 11:54
von BAlheit
Bei Feldern existiert die Eigenschaft RequiredLevel nicht. Es ist die Eigenschaft required zu prüfen.

Re: Pflichtfeldprüfung vor dem Druck bei bestimmten Feldern deaktivieren

Verfasst: 03.02.2020, 09:08
von UsTh
Vielen Dank für Deine Antwort. Das half mir allerdings nur indirekt weiter. Bin dann auf ein Script gestoßen, dass vor dem Abspeichern die Eingabe aller "Erforderlichen Felder" prüft. Den Befehl "Speichern" habe ich durch den Befehl "Drucken" ausgetauscht und nun klappt es. Hier nun das fertige Script:

allgood();
function allgood()
{
var mel;
mel=""
for (var i=0;i<this.numFields;i++)
{
var fName=this.getNthFieldName(i);
var f=this.getField(fName);
if ((f.type != "button") && f.required && (f.value.length<1))
{
mel=mel + fName + ", ";
}
}
if (mel==""){
app.doc.print();
}
else
{app.alert("Bitte füllen Sie vor dem Drucken alle erforderlichen Pflichtfelder (rot markiert) aus: " + mel);
}
}