Seite 1 von 5
Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 13:37
von zora_red
Hier schon gesucht, leider nichts dazu gefunden.
Pflichtfelder werden bei mir direkt beim Öffnen des Formulars abgefragt. Das heißt, wenn ich diese nicht mit einem Standardwert fülle (und das will ich eigentl. vermeiden), dann kommt beim Öffnen des Dokuments gleich mal eine Meldung:
Textfeld sowieso darf nicht leer bleiben!
Kann man diese Prüfung beim Öffnen des Dokuments unterbinden, wenn ja wie mache ich das? Würde gern erst nachdem das Pflichtfeld per Tab-Taste erreicht wurde bzw. bevor es gespeichert oder gedruckt wird eine Meldung ausgeben...
Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 13:43
von nele_sonntag
Hallo zora_red,
optimal ist das hier. Kannst das Skript ja entweder in Deinen Druck oder Email-Button einbauen.
http://acronaut.de/forum44/1495.html
Oder aber, Du nimmst das Pflichtfel raus und fragst per Skript nach Verlassen des Felkdes, ob es leer ist, allerdings nervt man damit die Benutzer ganz schön. Würde also auf Waldes Methode (erst beim Druck/Versenden) zurückgreifen.
LG Mandy
Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 13:46
von zora_red
Für den Notfall ok und genau das was ich meine. Allerdings habe ich weder E-Mail noch Druck-Button.
Die User Speichern oder Drucken nur über die AcrobatReader-Befehle direkt
Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 13:49
von zora_red
Dann werd ich doch die User ärgern müssen

Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 13:58
von nele_sonntag
Aber Du kannst es doch auch in den PRESAVE und PREPRINT-Ereignis schreiben, das funktioniert dann auch ohne Button über die Menübefehle.
Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 13:59
von zora_red

und wie geht das? wenns das ist, wonach es sich anhört wär das natürlich toll!
Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 14:06
von zora_red
Ah ok ich habs gefunden und das andere Skript aus dem E-Mail Beispiel eingefügt. Funktioniert!
Allerdings wird trotzdem beim Öffnen des Formulars und auch beim Verlassen der jeweiligen Felder eine Meldung ausgegeben, dass dies Pflichtfelder sind. Muss ich das noch separat irgendwo abstellen?
Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 14:11
von zora_red
Schade und das Skript von Walde prüft leider nicht nur die Pflichtfelder, sondern alle.
Code: Alles auswählen
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){
event.target.mailDoc({
bUI: false,
cTo: "test@test.de",
cSubject: "Betreff",
cMsg: "Nachricht"
});
}
else{
app.alert("Folgende Felder wurden nicht ausgefüllt.\n\n" + Sammelmeldung + "\nBitte füllen Sie diese Felder vor Versand der E-Mail vollständig aus.",1);
}
Da kenn ich mich leider zu wenig aus, um das umzuschreiben
Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 14:42
von nele_sonntag
Ist nicht schwer:
Der Code bedeutet, siehe jeweils Kommentar über den Zeilen.
Code: Alles auswählen
//deklariere Variable und setze den Wert auf true (wahr)
var Valid = true;
//deklariere Variable und setze den Wert auf null
var Sammelmeldung = "";
//wenn der Wert des Textfeldes anzahl_kopie null ist, also leer ist, dann
//Hier muss natürlich der Name/Pfad Eures Objektes stehen
if(Formular1.Seite_1.tf_kopf.anzahl_kopie.rawValue == null)
{
//setze den Wert der Variablen Valid auf false (falsch)
Valid = false;
//weise der Variablen Sammelmeldung den Wert der Variablen Sammelmeldung zu und den String (Text) - bspw. "Anzahl der Kopien" und füge einen Zeilenunumbruch hinzu
//Du müsstest jetzt also je nach Feld einen anderen Text einsetzen, bspw. - Nachname, denn das ist der Text, der für den Benutzer ausgegeben wird.
Sammelmeldung = Sammelmeldung + "- Anzahl der Kopien" + "n";
}
//wenn der Wert der Variablen Valid wahr ist (das ist er nur, wenn alle von Dir aufgeführten Felder ausgefüllt sind, dann
if(Valid){
//versende per Email
event.target.mailDoc({
bUI: false,
cTo: "test@test.de",
cSubject: "Betreff",
cMsg: "Nachricht"
});
}
//oder
else{
//gebe diese Meldung aus
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);
}
Du kannst ja dann statt des Emailevents, den Code des Druckbuttons reinkopieren:
Code: Alles auswählen
xfa.host.print(1, "0", (xfa.host.numPages -1).toString(), 0, 1, 0, 0, 0);
bzw. den Code zum Speichern.
Jetzt musst Du nur die folgenden Programmierzeilen für all die Felder machen, die Du überwacht haben willst.
if(Formular1.Seite_1.tf_kopf.anzahl_kopie.rawValue == null)
{
Valid = false;
Sammelmeldung = Sammelmeldung + "- Anzahl der Kopien" + "n";
}
LG Mandy
Prüfen von Pflichtfeldern
Verfasst: 23.08.2010, 14:46
von zora_red
Wow Mandy, ich erkläre dich hiermit zum LCD-Master!! Respekt!
Werd ich sofort ausprobieren, allerdings kann das bis morgen dauern. Melde mich dann, ob es damit geklappt hat! Danke