Prüfen von Pflichtfeldern

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
Benutzeravatar
zora_red
Beiträge: 73
Registriert: 17.08.2010, 08:27

Prüfen von Pflichtfeldern

Beitrag von zora_red » 23.08.2010, 13:37

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...

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Prüfen von Pflichtfeldern

Beitrag von nele_sonntag » 23.08.2010, 13:43

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

Benutzeravatar
zora_red
Beiträge: 73
Registriert: 17.08.2010, 08:27

Prüfen von Pflichtfeldern

Beitrag von zora_red » 23.08.2010, 13:46

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 :(

Benutzeravatar
zora_red
Beiträge: 73
Registriert: 17.08.2010, 08:27

Prüfen von Pflichtfeldern

Beitrag von zora_red » 23.08.2010, 13:49

Dann werd ich doch die User ärgern müssen :P

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Prüfen von Pflichtfeldern

Beitrag von nele_sonntag » 23.08.2010, 13:58

Aber Du kannst es doch auch in den PRESAVE und PREPRINT-Ereignis schreiben, das funktioniert dann auch ohne Button über die Menübefehle.

Benutzeravatar
zora_red
Beiträge: 73
Registriert: 17.08.2010, 08:27

Prüfen von Pflichtfeldern

Beitrag von zora_red » 23.08.2010, 13:59

:shock: und wie geht das? wenns das ist, wonach es sich anhört wär das natürlich toll!

Benutzeravatar
zora_red
Beiträge: 73
Registriert: 17.08.2010, 08:27

Prüfen von Pflichtfeldern

Beitrag von zora_red » 23.08.2010, 14:06

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?

Benutzeravatar
zora_red
Beiträge: 73
Registriert: 17.08.2010, 08:27

Prüfen von Pflichtfeldern

Beitrag von zora_red » 23.08.2010, 14:11

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 :(

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Prüfen von Pflichtfeldern

Beitrag von nele_sonntag » 23.08.2010, 14:42

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


Benutzeravatar
zora_red
Beiträge: 73
Registriert: 17.08.2010, 08:27

Prüfen von Pflichtfeldern

Beitrag von zora_red » 23.08.2010, 14:46

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 :)

Antworten