Acronaut Diskussions Forum Home

Freies User Forum für

ADOBE® ACROBAT®

Acronaut Diskussions Forum > Adobe Livecycle Designer > Mustervorlagen & Tutorials > EMail Schaltfläche mit Überprüfung von Pflichtfeldern
Navigation
 
 Moderiert von: WebZopp, Gentleman, FileAffairs, acronaut Produkt: Adobe LiveCycle Designer V9  
Zahlenübersicht
Bitte wählen Sie eines der folgenden Optionen aus:
   
   
   
Ergebnis
 

Votum
VerfasserBericht
Julischka
Member
 

Eintragen seit: 26 Sep 2009
Herkunft: Deutschland
Berichte: 242
Status:  Offline
...siehe Anhang.

Danke Walde für diese geniale Vorlage!

Anlage: E-Mail mit überprüfung.pdf (981 Mal aufgenommen)

Julischka
Member
 

Eintragen seit: 26 Sep 2009
Herkunft: Deutschland
Berichte: 242
Status:  Offline
... und hier noch eine Vorlage, die Felder aus der Prüfung ausschließt.

.. und auch hier: Danke Walde!

Anlage: E-Mail mit Überprüfung-2.pdf (618 Mal aufgenommen)

SHamm
Member
 

Eintragen seit: 28 Dez 2009
Herkunft:  
Berichte: 3
Status:  Offline
Hallo,

ich weiss es gehört nicht hier hin, aber gibt es auch ein Bespiel wie ein enzelnes Feld aus der Abfrage herausgenommenen werden kann? Die Beispiele beziehen sich ja immer nur auf die Teilformulare.

Danke und Gruß

 

Stephan

walde
Member
 

Eintragen seit: 1 Mai 2008
Herkunft: Deutschland
Berichte: 613
Status:  Offline
Hallo SHamm,

 

Am einfachsten wäre es die Felder, die von der Schleife ausgeschlossen werden sollen in einem seperatem Teilformular abzulegen um diesen dann auszuschließen.

 

Gruß,

 

Walde

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
Hallo Walde,
wie könnte ich es realisieren bzw. Ihr Skript dahingehend anpassen, dass bei Optionsfeldern nur geprüft wird, ob eines aus der Gruppe aktiviert wird? Nach Ihrem Skript erhalte ích immer eine Meldung, da ja immer bei einer 5er Optionsauswahl 4 nicht ausgefüllt sind?

Habe es auch schon mit wenig professioneller Schreibarbeit versucht, wobei hier farbe das Teilformular um die einzelnen Ok ist. Insofern wollte ich mit 0 abfragen, ob überhautp etwas angeklickt wurde.
if(Formular1.Seite_1.tf_farbe.farbe.rawValue=="0"){xfa.host.messageBox("Fachbereich/Referat/Abteilung fehlt.","Hinweis",1,0);}

Aber schon mit der Verschachtelung bekomme ich Probleme, weil wohl falsch vom Syntax. Leider finde ich zu dieser Uhrzeit (ok, vielleicht bin ich auch nur unfrisch) nicht mal den korrekten IF-Verschachtelungssyntax für Javascript, denn ich muss mehrere Optionsabfragen checken, bevor er mailen darf.

Wäre für einen Tipp wie immer sehr dankbar. Gern auch für eine schreibintensive IF-Verschachtelung ohne Schleife.

Müsste bspw. Kostenstelle, Fachbereich (Optionsk), Anzahl Kopien, Schwarz/Farbdruck (Optionsk) usw. überprüfen.

Liebe Grüße Mandy

Anlage: test.pdf (177 Mal aufgenommen)

Letzte Änderung am 18 Jul 2010 20:32 von nele_sonntag

walde
Member
 

Eintragen seit: 1 Mai 2008
Herkunft: Deutschland
Berichte: 613
Status:  Offline
hallo nele_sonntag,

 

Habe die Beispieldatei vom 19 Nov 2009 01:25 soweit abgeändert, dass auch Optionsfelder mit aufgenommen sind.

 

Gruß,

 

Walde

Anlage: E-Mail mit Überprüfung 2.pdf (367 Mal aufgenommen)

Letzte Änderung am 20 Jul 2010 17:52 von walde

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
Hallo Walde,

vielen lieben Dank. Das hilft mir sehr viel.

Eine Frage trotzdem.
Wenn Optionsfeldliste 1 aktiviert wurde, gibt er trotzdem die Meldung aus, dass sie nicht ausgefüllt wurde, gleiches umgekehrt. OFL2 wurde aktiviert, aber es gibt eine Meldung? Trotz Code anschauen, weiß ich nicht genau warum.
Hätten Sie noch eine Erklärung für mich?

//bedeutet: wenn die OFL leer ist/also nichts angeklickt wurde
if(Optionsfeldliste1.rawValue == 0){

//dann weise der Variablen Valid den Wert false zu
    Valid = false;

//Variable Sammelmeldung wird der Wert, der bereits in der Variablen Sammelmeldung enthalten ist plus der String "OFL1" zugewiesen, danach ein Zeilenumbruch
    Sammelmeldung = Sammelmeldung + "Optionsfeldliste1" + "\n";
}

Vielen Dank für Ihre Mühe.

Liebe Grüße Mandy

walde
Member
 

Eintragen seit: 1 Mai 2008
Herkunft: Deutschland
Berichte: 613
Status:  Offline
Hallo nele_sonntag,

 

Sorry habe die Beschriftungen über den Optionsfeldlisten vertauscht. Optionsfeldliste1 sollte rechts sein und Optionsfeldliste2 sollte links sein.

Habe die Beispieldatei bereits korrigiert und neu eingefügt.

 

Gruß,

 

Walde

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
Lieber Walde,

wie peinlich. Ich habe im Code geschaut und war wieder einmal frustriert, weil ich keinen Fehler gefunden habe.

In der Hierarchie nach den Objekten zu schauen...darauf bin ich nicht gekommen :-(

Habe gestern Abend, dank Ihrer Hilfe, nun mein Dokument mit Ihrem Code, den ich für mich angepasst habe, nach meinen Anforderungen gestalten können.

Vielen Dank noch einmal.

Liebe Grüße aus dem immer noch wahnsinnig heißem Frankfurt,
Mandy

Letzte Änderung am 21 Jul 2010 10:25 von nele_sonntag

AdminLCD1
Member
 

Eintragen seit: 22 Mar 2010
Herkunft:  
Berichte: 45
Status:  Offline
Hallo,

erst mal Danke für die Buttons. Haben mir sehr geholfen. Jetzt habe ich noch eine Frage zu den Überprüfungen bevor die Mail gesendet wird:

Ich möchte, dass ein Ankreuzfeld mit in die Überprüfung genommen wird, weiß allerdings nicht, wie es im Script Editor zu benennen ist.

Grüsse
Sebastian

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
Hallo Sebastian,

Ist nicht schwer:

Der Code bedeutet, siehe jeweils Kommentar über den Zeilen.

Du selbst müsstest nur die folgenden Programmierzeilen für all die Felder machen, die Du überwacht haben willst. Bedeutet, dass Du statt anzahl_kopie den Namen Deines Kontrollkästchens nehmen musst. Ein KK ist nicht aktiv, wenn es den Wert = hat, also =="0"
 
if(Formular1.Seite_1.tf_kopf.anzahl_kopie.rawValue == null)
{
            Valid = false;
            Sammelmeldung = Sammelmeldung + "- Anzahl der Kopien" + "n";
}

 
//deklarier Variable und setze den Wert auf true (wahr)
var Valid = true;

//deklarier Variable und setze den Wert auf null
var Sammelmeldung = "";
     
//wenn der Wert des Textfeldes anzahl_kopie null ist, also leer ist, dann
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) - 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 ausgegebn 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.\n\n" + Sammelmeldung + "\nBitte füllen Sie diese Felder vor Versand der E-Mail vollständig aus.",1);
}

 
LG Mandy

AdminLCD1
Member
 

Eintragen seit: 22 Mar 2010
Herkunft:  
Berichte: 45
Status:  Offline

Hallo Mandy,

danke. Hat mir wieder geholfen.

Jetzt habe ich wieder eine Frage:
Ich habe zwei Dezimalfelder, von denen eines befüllt sein soll:

"Darlehenssumme" oder "
Teilbetrag"

Ich habe das mit folgendem Befehl versucht, aber es klappt nicht. Ich denke, dass der OR Befehl falsch ist.

(if
(V1.TF2.UTF2.UTF2_2.Tabelle1.Zeile1.keine[0].Darlehenssumme.rawValue == 0)
or

if
(V1.TF2.UTF2.UTF2_2.Tabelle1.Zeile1.keine[1].Teilbetrag.rawValue ==0 )){
Valid
= false;
Sammelmeldung
= Sammelmeldung + "Rückzahlungshöhe" + "\n";
}

Oder muss man da addieren? Ich kenn mich in der Programmierung von Java noch nicht so gut aus. Rein von der SQL Logik her müsste ich sagen, wenn(Darlehenssumme + Teilbetrag = 0;"Fehler";"senden") oder so ähnlich.

Grüsse
Sebastian

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
Ja, richtig erkannt, dass OR gibts so schon mal nicht.

In Javascript ist || = ODER und && = UND.

 
if(Feld1.raValue=="0" || Feld2.raValue=="0")

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
Nicht nur das OR wahr falsch auch die Null.

//deklarier Variable und setze den Wert auf true (wahr)
var Valid = true;
//deklarier Variable und setze den Wert auf null
var Sammelmeldung = "";
//wenn der Wert des Dezimalfeldes 1 oder 2 null ist, also leer ist, dann
if(dz1.rawValue == null || dz2.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) - 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 ausgegebn wird.
            Sammelmeldung = Sammelmeldung + "- Rückzahlungshöhe" + "\n";
}
 


Hoffe, es hilft Dir weiter.

LG Mandy

Anlage: DZ.pdf (214 Mal aufgenommen)

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
Hallo walde,

Ihr Skript ist furchtbar hilfreich.

Jetzt habe ich versucht (erfolglos, wenn ich das anmerken darf), dies als Funktion auszulagern, um meine Skript übersichtlicher zu gestalten.

Ich habe nämlich das Problem, dass jeweils unterschiedliche Felder abgeprüft werden sollen.

Bspw.:
Habe ich Pakte A angkreuzt, ist nur erforderlich zu schauen, dass Name, Abteilung ausgefüllt ist.

Habe ich Pakte B angkreuzt, sind mehrere Prüfungen erforderlich, Name, Abteilung, Alter, ...

Dies hatte ich zunächst mit einer IF-Verzweigung gelöst, doch jetzt werden die Varianten, die abgeprüft werden sollen immer mehr, sodass dieser Lösungsansatz 300 Zeilen.. und mehr im SENDEN-Button unterzubringen nicht wirklich sinnvoll ist.

Habe schon von FileAffairs von Entscheidungstabellen gehört, die ich als Array anlegen soll, um dort zu hinterlegen, welches Feld bei welcher Variante abgeprüft werden soll. Dies übersteigt aber, denke ich, meine momentanen Programmierfähigkeiten.

Bin von daher für einen Lösungsansatz sehr dankbar.

Danke Mandy

walde
Member
 

Eintragen seit: 1 Mai 2008
Herkunft: Deutschland
Berichte: 613
Status:  Offline
Hallo nele_sonntag,

 

Anbei eine Beispieldateie, die Ihnen hoffentlich weiterhelfen wird. Hierbei wird ein Variablen Array erstellt, der mehrere Indexwerte (0,1,2) für die jeweilige Variante besitzt. Jeder Indexwert hat widerum ein eigenes Variablen Array und beinhaltet die zu prüfenden Feldbezeichnungen (Textfeld1, Textfeld2 ...).

Bei der Auswahl der jeweiligen Variante im Dropdown wird eine Überprüfung mit einer Zahl gestartet. Alles was <= Zahl ist wird als Index des Variablen Array in die Nullprüfung miteinbezogen.

Beispiel:
  1. Variante A -> 0. 0 Bedeutet, dass auf die Nullwerte von Vorname und Nachname überprüft wird.
  2. Variante B -> 1. 1 Bedeutet, dass sowohl der Indexwert 0 als auch 1 überprüft wird (<=1). In diesem Fall Vorname, Nachname, Telefon und E-Mail.
  3. Variante C -> 2. 2 Bedeutet, dass sowohl der Indexwert 0, 1 als auch 2 überprüft wird (<=2). In diesem Fall Vorname, Nachname, Telefon, E-Mail, PLZ, Wohnort und Strasse.
Gruß,

 

Walde

Anlage: Überprüfen per Array.pdf (103 Mal aufgenommen)

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
Lieber walde,

auch hier vielen lieben Dank für Ihre Mühe, werde mir gleich das Beispiel-PDF anschauen und versuchen nachzuvollziehen.

Zwei kurze Fragen noch:

Frage:
  1. Ihre Email-Prüf-Funktion auslagern als Funktion zur besseren Übersichtlichkeit im Code
  2. Wie beziehe ich ein DropDownFeld in die Prüfung ein? (siehe Beispieldatei) Ich
Ich bekomme das DropDownFeld einfach  nicht mit in die Prüfung integriert. Was mache ich falsch?

Was mache ich falsch, wenn ich Ihrem Skript zur Pflichtfelderprüfung vor Versand einen Funktionsnamen vorschalte und unter Skripte hinterlege und in den IF-Verzweigungen einen Funktionsaufruf starte? Woher weiß ich, ob eine Funktion einen Parameter zur Übergabe benötigt? Kann man das pauschal erklären? Es ist bei mir leider schon eine ganze Weile her.

function felder_check(){
    var Valid = true;
    var Sammelmeldung = "";

    //Kopien prüfen
    if(Formular1.Seite_1.anzahl_kopie.rawValue == null)
    {
        Valid = false;
        Sammelmeldung = Sammelmeldung + "- Anzahl der Kopien" + "\n";
    }
    //DIN Feld prüfen
    if(Formular1.Seite_1.dd_din.rawValue == " ")
    {
        Valid = false;
        Sammelmeldung = Sammelmeldung + "- DIN A-Feld" + "\n";
    }
    //wenn Variable VALID wahr, dann mailen
    if(Valid)
    {
        event.target.mailDoc
        ({
            bUI: false,
            cTo: "test@test.de",
            cSubject: "Bestellung",
            cMsg: "Sehr geehrte ..,\n\nanbei finden Sie ..\n\nMfG"
        });
    }
    else
    {
        app.alert("Folgende Felder..ausgefüllt:\n\n" + Sammelmeldung + "\nBitte ..aus. Danke.",1);
    }
}


Danke,
Mandy

Anlage: pruefung_dropdown.pdf (54 Mal aufgenommen)

walde
Member
 

Eintragen seit: 1 Mai 2008
Herkunft: Deutschland
Berichte: 613
Status:  Offline
Hallo nele_sonntag,

 

Anbei Ihre Beispieldatei. Leider Erfordert die Überprüfung eines DropDown Feldes mehrere Möglichkeiten.
  • Es sollte der Bidewert bei der Überprüfung miteinbezogen werden, falls dieser vergeben ist.
  • es sollte eine Nullprüfung durchgeführt werden, falls das DropDown Feld noch nie bearbeitet wurde.
Siehe Beispieldatei.

Zu Frage 1:

Bin mir nicht sicher ob ich Sie richtig verstanden habe.

Eine Fubktion ist im endeffekt ein Skript, welcher von vielen Objekten aus ausgeführt werden kann. Der Vorteil einer Funktion ist, dass diese für Viele Objekte sehr variabel gestaltet werden kann.

Beispie:

Eine Funktion, die den Wert eines Feldes abfragt kann folgendermaßen aussehen:

function nValue(nField, nThisField){

nThisField.rawValue = nFiled.rawValue;

}


Diese Funktion kann dann von einem beliebigen Feld aus ausgeführt werden, wobei die Parameter nField ein beliebiges Zielfeld darstellen dessen Wert aufgenommen werden soll und nThisFiel den Parameter des Feldes darstellen, welches die Funktion ausführt. Wenn die Funktion nun vom Textfeld2 aus ausgeführt wird um den Wert von Textfeld1 zu übernehmen, so könnte dies Folgendermaßen aussehen "nValue(Textfeld1, this)". Im Umgekehrtem Fall würde es dann so aussehen "nValue(Textfeld2, this).

 

Gruß,

 

Walde 

Anlage: pruefung dropdown.pdf (43 Mal aufgenommen)

walde
Member
 

Eintragen seit: 1 Mai 2008
Herkunft: Deutschland
Berichte: 613
Status:  Offline
Hallo nele_sonntag,

 

Anbei Ihre Beispieldatei. Leider Erfordert die Überprüfung eines DropDown Feldes mehrere Möglichkeiten.
  • Es sollte der Bidewert bei der Überprüfung miteinbezogen werden, falls dieser vergeben ist.
  • es sollte eine Nullprüfung durchgeführt werden, falls das DropDown Feld noch nie bearbeitet wurde.
Siehe Beispieldatei.

Zu Frage 1:

Bin mir nicht sicher ob ich Sie richtig verstanden habe.

Eine Fubktion ist im endeffekt ein Skript, welcher von vielen Objekten aus ausgeführt werden kann. Der Vorteil einer Funktion ist, dass diese für Viele Objekte sehr variabel gestaltet werden kann.

Beispie:

Eine Funktion, die den Wert eines Feldes abfragt kann folgendermaßen aussehen:

function nValue(nField, nThisField){

nThisField.rawValue = nFiled.rawValue;

}


Diese Funktion kann dann von einem beliebigen Feld aus ausgeführt werden, wobei die Parameter nField ein beliebiges Zielfeld darstellen dessen Wert aufgenommen werden soll und nThisFiel den Parameter des Feldes darstellen, welches die Funktion ausführt. Wenn die Funktion nun vom Textfeld2 aus ausgeführt wird um den Wert von Textfeld1 zu übernehmen, so könnte dies Folgendermaßen aussehen "nValue(Textfeld1, this)". Im Umgekehrtem Fall würde es dann so aussehen "nValue(Textfeld2, this).

 

Gruß,

 

Walde 

Anlage: pruefung dropdown.pdf (66 Mal aufgenommen)

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
Wunderbar!!

Mit der Prüfung des DIN Feldes kann ich glücklicherweise eines meiner PDFs abschließen.

Haben Sie vielen Dank!!

Die Einzelteile, die Sie in die Prüfung einbezogen haben, habe ich natürlich einzeln ausgeführt. Damit aber auch ich mich mal weiter entwickele, woher hätte ich jetzt diese Information (außer von Ihnen) nehmen können, dass hier alle 3 Komnination abzuprüfen sind?

Mit Funktionen werde ich auch mal dieses Wochenende herumexperimentieren.

Danke erst einmal.

Liebe Grüße
Mandy

Letzte Änderung am 4 Sep 2010 10:38 von nele_sonntag

Nicole
Member


Eintragen seit: 24 Mar 2009
Herkunft:  
Berichte: 94
Status:  Offline
Hi,

obwohl das TExtfild1 nicht gefüllt ist, wird das PDF per E-Mail versenden :o(
wo ist mein Fehler hier:

<event activity="click" name="event__click">
               <script contentType="application/x-javascript">var Valid = true;
var Sammelmeldung = "";

//bedeutet: wenn die OFL leer ist/also nichts angeklickt wurde
if(TextField1.rawValue == 0){

//dann weise der Variablen Valid den Wert false zu
    Valid = false;

//Variable Sammelmeldung wird der Wert, der bereits in der Variablen Sammelmeldung enthalten ist plus der String "OFL1" zugewiesen, danach ein Zeilenumbruch
    Sammelmeldung = Sammelmeldung + "TextField1" + "\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);
}

</script>
            </event>
            <event activity="click" name="event__click">
               <script contentType="application/x-javascript">


if (txt_Unternehmen.parents.rawValue == null) xfa.host.messageBox("Bitte geben Sie ein Unternehmen ein!");

</script>
            </event>

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
http://acronaut.de/forum35/966-2.html

marco79
Member
 

Eintragen seit: 10 Nov 2011
Herkunft:  
Berichte: 4
Status:  Offline
Hallo,

ich wollte einfach das Script so ändern, dass nur Felder, die mit "V" anfangen, abgefragt werden.

for(var j = 0; j < nodesLength; j++){
        var oItem = oFields.item(j);
       
        if(oItem.name.substring(1,1) == "V"){
            if(oItem.ui.oneOfChild.className != "button" & oItem.rawValue == null | oItem.rawValue == ""){
                Valid = false;
                Sammelmeldung = Sammelmeldung + oItem.name + "\n";           
            }
         }
    }


Funktioniert aber leider so nicht.

Hat bitte jemand einen Tipp?

Gruß Marco

DerPappa
Member
 

Eintragen seit: 29 Mar 2012
Herkunft:  
Berichte: 2
Status:  Offline
Hallo Walde,
das ist genau was ich brauche. nun bin ich aber komplett neu bei LCD und habe keine Ahnung wie ich das script in deiner PDF Datei finden und kopieren kann :(
Ich würde mich wahnsinnig über etwas Hilfe dabei freuen.

Danke und Gruß aus Ulm
Stephan

DerPappa
Member
 

Eintragen seit: 29 Mar 2012
Herkunft:  
Berichte: 2
Status:  Offline
Ich nehm alles wieder zurück. Wer lesen kann ist klar im Vorteil...;)
Danke für das Script!

Gruß und schönes WE
Stephan

sopuab
Member
 

Eintragen seit: 3 Dez 2012
Herkunft:  
Berichte: 13
Status:  Offline
Hallo an die Experten hier,

das Forum hat mir schon viel geholfen. Ich habe ohne große Vorkenntnisse es geschafft, ein Formular mit einem Mail-Sendebutton zu versehen und sogar noch einige Feldinhalte in Mailbetreff und Mailtext einzubauen.

Ich bin nur am verzweifeln mit der Pflichtfeldprüfung. Ich habe folgende Pflichtfelder in meinem Formular (das Formulart hat noch sehr viel mehr Felder, aber diese werden zwingend benötigt) :  : Beratung vom (Datums/Kalenderfeld), Kundenname, Kundennummer (Freitextfelder), Beratername (einfache Dropdownliste) und Versand der Kundenunterlagen (einfache Dropdownliste für versch. Orte). Solange eines dieser Felder nicht gefüllt ist, sollte das Formular möglichst nicht über die Schaltfläche gesendet werden können. Alle Scripte die ich bis jetzt aus diesem Thread probiert habe, brachten keinen Erfolg. Der Button verzweigt sofort in Outlook. Dort befüllt es allles korrekt (die nicht ausgefüllten Felder erscheinen in den Mail-Variablen als "null".)

Das Cript dazu sieht so aus :
//E-Mail-Adresse auslesen/befüllen
var Mailto = "testa@b.de";

//Betreff auslesen/befüllen
var Betreff = "Produktionsauftrag vom_" + Datumvom.rawValue + "_Personennummer_" + Personennummer.rawValue + "_Kunde_" + Kundenname.rawValue + "_Berater_" + Berater.rawValue;


//Nachricht zusammensetzen/befüllen
var Nachricht = "Versand der Unterlagen an_" + Versand.rawValue;

//E-Mail-Adresse für CC auslesen/befüllen
var CC = "testcc@b.de";

//E-Mail-Adresse für BCC auslesen/befüllen
//var BCC = "testbcc@test.de";

var Mail = "mailto:" + Mailto + "?Subject=" + Betreff + "&Body=" + Nachricht + "&cc=" + CC;

//cSubmitAs: "PDF" versendet das PDF als PDF im Anhang
event.target.submitForm({
cURL: Mail,
bEmpty: true,
cSubmitAs: "PDF"
});

AdminLCD1
Member
 

Eintragen seit: 22 Mar 2010
Herkunft:  
Berichte: 45
Status:  Offline
Hallo sopuab,

anbei ein Mailversand, der bei mir funktioniert. Die Kursiven Textstellen sind von dir individuell zu ändern. Den "if..." Teil kannst du beliebig oft reinkopieren. Eventuell musst du auch die "== null" Bedingung anpassen (im Hinblick auf die Dropdownfelder).

var Valid = true;
var Sammelmeldung = "";
if( Pfad.Feldname.rawValue == null ){Valid = false; Sammelmeldung = Sammelmeldung + "Fehlermeldung" + "\n";} event.target.mailDoc({bUI: false,cTo: Name.Name@domain.de,
cSubject: "Betreff",
cMsg: ""});
}
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);
}


Grüsse
Bastl

Wespe
Member
 

Eintragen seit: 14 Aug 2014
Herkunft: Leipzig, Deutschland
Berichte: 29
Status:  Offline
Julischka schrieb: ...siehe Anhang.

Danke Walde für diese geniale Vorlage!
Hallo Julischka,
die Vorlage von Walde funktioniert im Original wunderbar. Nun habe ich sie um einige Pflicht- und Dropdown-Felder erweitert und bekomme selbst dann eine Fehlermeldung, wenn alle Pflichtfelder belegt sind.

----- Formular1.#subform[0].Schaltfläche1::click: - (JavaScript, Client) ---------------------------

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 + j +" "+oItem.name + "\n";           
        }
    }
}
if(Valid){
    var KommuneName = Kommune.rawValue;
    event.target.mailDoc({
        bUI: false,
        cTo: "test@xx.de",
        cSubject: "Formular Nutzer Kunde für " + KommuneName,
        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);
}

Scheinbar wird ein Feld zu viel erkannt.

Weiß jemand, wo der Fehler liegt?
P.S. Ich bin absoluter Neuling in LCD und JavaScript.

Werner

Anlage: E-Mail mit Ueberpruefung_3.pdf (6 Mal aufgenommen)

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2185
Status:  Offline
Hallo Werner,

deine Abfrage habe ich nachgebessert. Mach dir mal Gedanken, wie sinnvoll sie ist, wenn eine DDL mit »Ihr Eintrag« und eine weitere mit »Einwohnermeldeamt« vorbelegt ist.

Das Format habe ich auf DIN A4 geändert.

vg armine

Anlage: E-Mail mit Ueberpruefung_3.pdf (19 Mal aufgenommen)

Wespe
Member
 

Eintragen seit: 14 Aug 2014
Herkunft: Leipzig, Deutschland
Berichte: 29
Status:  Offline
Hallo armine,

vielen Dank für Deine schnelle Reaktion.

1) Problem Vorbelegung der DDL: Da bin ich selbst noch am Grübeln. Der Kunde kann aus dem Dropdown Menü einen Wert auswählen, soll aber auch noch die Möglichkeit haben, einen abweichenden Wert einzugeben. Ich verstehe, bei einer sinnlosen Vorbelegung wird diese bei E-Mailversand auch akzeptiert. Der Kunde soll erkennen, daß er außer den Werten der Dropdown Liste auch eigene Eingaben tätigen kann.

2) Pflichtfelder: diese hatte ich mit dem LCD erstellt und auch die Option "Benutzereingabe erforderlich" gesetzt. Da kannte ich das JS-Skript aus dem Forum noch nicht, wo ja die Pflichtfelder abgefragt werden. Ist das jetzt "doppelt gemoppelt"?

3) Kosmetik: die Linie unterhalb des Tabellenkopfes sollte eine einheitliche Stärke haben, habe da schon mehrmals herumexperimentiert.

4) und das Wichtigste: wodurch wurde eigentlich die Meldung über ein nichtgefülltes Pflichtfeld verursacht. Wurde irgendein anderes Feld als Pflichtfeld in meinem abgewandelten Skript identifiziert?

m.f.G. Werner

Anlage: E-Mail mit Ueberpruefung_4.pdf (18 Mal aufgenommen)

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2185
Status:  Offline
Hallo Werner,

1) Das hast du gelöst.
2) Erst wenn man Pflichtfelder abprüft haben sie einen Sinn.
3) Schaut es nun ordentlich aus? Bei den Namensspalten und dem Telefon habe ich 2 Zeilen zugelassen, weil es mir dort etwas eng vorkommt.
4) Um Fehler kümmere ich mich nur nebenbei. Mein Vorgehen folgt eher der Maxime: Mach es erst mal richtig, dann wird’s schon funktionieren.

vg armine

Anlage: E-Mail mit Ueberpruefung_4a.pdf (12 Mal aufgenommen)

Wespe
Member
 

Eintragen seit: 14 Aug 2014
Herkunft: Leipzig, Deutschland
Berichte: 29
Status:  Offline
Hallo armine,
Dank für die wiederum schnelle Antwort.
Ich beziehe mich nochmals auf die von mir angesprochenen Punkte.

2) Pflichtfelder: welchen Sinn hat beim Anlegen die Option "Benutzereingabe erforderlich"?
Hatte vor Verwendung von JS nur mit dem E-Mail-Versand aus dem Reader heraus gearbeitet. Dabei wurden nicht gefüllte Felder angemeckert. Dem JS ist doch wohl egal, ob diese Option gesetzt ist?

3) Kosmetik: sieht jetzt schick aus, überhaupt scheint das Formular jetzt größenmäßig abgespeckt zu sein. Auf Arbeit habe ich leider nur den LCD 8.0. Liegt das daran?

4) Du hattest die Abfrage auf Pflichtfelder korrigiert. Ich hätte trotzdem gern gewußt warum in E-Mail mit Ueberpruefung_3 ein namenloses Pflichtfeld als nicht gefüllt erkannt wird.

m.f.G.
Werner

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2185
Status:  Offline
Hallo Werner,

2) Beim Anlegen hast du von Pflichtfeldern gar nichts. Beim Abprüfen des Formulars hast du aber bei Pflichtfeldern den Vorzug, dass du sie nicht anhand einer Liste einzeln abfragen musst, sondern durch diese Kennzeichnung abprüfen kannst.

3) An V8/V9 liegt es nicht. Du solltest dich aber von V8 verabschieden. Die Umstellung auf V9 war wie der Wechsel vom Faustkeil zum Hammer.

Ein Formular sollte funktional und ansprechend sein. Warum du (fast) alles in eine Zeile quetscht, statt die Seite zu nutzen, kann ich nicht nachvollziehen. Etwas besser geht’s aber doch noch.

vg armine

Anlage: E-Mail mit Ueberpruefung_4a.pdf (27 Mal aufgenommen)

Wespe
Member
 

Eintragen seit: 14 Aug 2014
Herkunft: Leipzig, Deutschland
Berichte: 29
Status:  Offline
Hallo armine,

vielen Dank für Deine Hinweise.

2) Das mit den Pflichtfeldern muss ich mir so nach und nach erarbeiten.

3) Umstellung auf V9: Da bin ich von meinem Arbeitgeber abhängig. Ich merke schon, daß es recht mühsam ist, mit V8 ein Formular zu gestalten. Und den Weg über Import einer Word- oder Excel-Datei habe ich nach mehreren Versuchen fallen gelassen. Die Ergebnisse sahen verheerend aus.

4) Die "gequetschte Zeile" hat ihren Ursprung in einer Excel-Tabelle, mit der alles seinen Anfang nahm.

m.f.G.

Werner

Wespe
Member
 

Eintragen seit: 14 Aug 2014
Herkunft: Leipzig, Deutschland
Berichte: 29
Status:  Offline
Liebes Forum,

ich habe ein scheinbar triviales Problem. Bei Nutzung des E-Mailversandes über den Button wird der Name des Mailanhangs um den Namen des Readers erweitert. Müßte bestimmt eine Einstellung im Reader sein, habe aber bis jetzt noch nichts gefunden.


m.f.G. Werner

Anlage: E-Mailanhang.jpg (186 Mal aufgenommen)

Letzte Änderung am 8 Sep 2014 07:32 von Wespe

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2185
Status:  Offline
Hallo Werner,

es gibt hier eine Suchfunktion. radzmar erklärt es dir alles in http://www.acronaut.de/forum35/4086.html

vg armine

Wespe
Member
 

Eintragen seit: 14 Aug 2014
Herkunft: Leipzig, Deutschland
Berichte: 29
Status:  Offline
Liebe livecycle Gemeinschaft,

ich knobele z.Zt. an einem JS-Problem und habe mir vorhandene Beispiele mehr oder minder abgeguckt.

Ich habe zwei Optionsfelder zu einer Ausschlussgruppe zusammen gefasst.

1. bei Option "neue Einteilung" wird auch das Textfeld "neue_Einteilung_Wahlbezirke" zum Pflichtfeld.
Über den Button soll vor dem Druck überprüft werden, ob alle Pflichtfelder gefüllt sind. Das Textfeld "neue_Einteilung_Wahlbezirke" soll natürlich nur dann als fehlend genannt werden, wenn es durch das Optionsfeld auf "visible" gesetzt wurde.
Wenn aber keinerlei Option gewählt wurde, wird es auch als fehlend aufgelistet. Ich hatte schon versucht, das "visible" ins Spiel zu bringen, aber ohne Erfolg.

Werner

Anlage: Optionsfeld_3.pdf (7 Mal aufgenommen)

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2185
Status:  Offline
Hallo Werner,

geht es so?

vg armine

Anlage: Wespe_Optionsfeld_3.pdf (7 Mal aufgenommen)

Wespe
Member
 

Eintragen seit: 14 Aug 2014
Herkunft: Leipzig, Deutschland
Berichte: 29
Status:  Offline
Vielen Dank, armine,

Dein angepaßtes Formular funktioniert einwandfrei. Allerdings möchte ich bei Optionsfeldern, die in einer Ausschlußgruppe zusammengefasst sind, nur den Namen der Ausschlußgruppe genannt bekommen, wenn KEINERLEI Option gewählt wurde. Oder ist das ein falscher Ansatz? Ich hatte das mit Optionsfeld_3 versucht, wenn auch nicht so elegant.

m.f.G. Werner

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2185
Status:  Offline
Hallo Werner,

das geht auch.

vg armine

Anlage: Wespe_Optionsfeld_3.pdf (26 Mal aufgenommen)

Letzte Änderung am 27 Jan 2015 21:10 von armine

Wespe
Member
 

Eintragen seit: 14 Aug 2014
Herkunft: Leipzig, Deutschland
Berichte: 29
Status:  Offline
Hallo armine,

vielen Dank; funktioniert so. Ich möchte aber trotzdem meine Frage wiederholen:

" Allerdings möchte ich bei Optionsfeldern, die in einer Ausschlußgruppe zusammengefasst sind, nur den Namen der Ausschlußgruppe genannt bekommen, wenn KEINERLEI Option gewählt wurde. Oder ist das ein falscher Ansatz?"

Es gibt doch sicher Designrichtlinien oder sagen wir, eine sinnvolle Gestaltung von Formularen. Der Nutzer soll ja nicht verwirrt, sondern so durch ein Formular geführt werden, daß Fehleingaben vermieden werden.

m.f.G. Werner

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2185
Status:  Offline
Hallo Werner,

„KEINERLEI“ scheint mir ein seltsamer Ansatz. Entweder ist kein Radio Button ausgewählt oder eben doch einer und dann spielt es keine Rolle, welcher ausgewählt wurde.
Wo man Designrichtlinien findet oder eine sinnvolle Gestaltung von Formularen lernen kann? Wenn ich das wüsste, würde ich es andauernd hinaus posaunen. Dass du dich darum bemühst freut mich.
Bei Radio Buttons die Gruppe zu benennen und nicht alle einzeln aufzuführen ist ein guter Ansatz und zum Gelingen muss halt etwas Code geschrieben werden.

vg armine

Lone
Member
 

Eintragen seit: 6 Mar 2017
Herkunft:  
Berichte: 1
Status:  Offline
Hallo Zusammen,

ich habe folgendes Problem bei der Prüfung der Drop-Down-Liste.
Es soll voreingestellt ein bestimmter Wert "Bitte wählen Sie unter folgenden Möglichkeiten aus" im Drop-Down-Menü eingeblendet sein.

Wie kann man diesen Abfragen? Die Prüfung funktioniert nur, wenn kein Wert voreingestellt ist.

Habt ihr eine Idee was an der Stelle hinter dem "==" stehen muss für diese Abfrage?

if (dropDown.rawValue == null)

Vielen Dank im Voraus. :)

armine
Administrator
 

Eintragen seit: 15 Mai 2009
Herkunft:  
Berichte: 2185
Status:  Offline
Hallo Lone,

du kannst dich an "selectedIndex" halten und bei der nächsten Frage das dazugehörige PDF hochladen.

vg armine

Anlage: DDL_Pflichtfeld.pdf (6 Mal aufgenommen)

Letzte Änderung am 8 Mar 2017 11:46 von armine





Powered by WowBB 1.7 - Copyright © 2003-2006 Aycan Gulez
Seite erstellt in 0.1812 Sekunden (23% DB + 77% PHP). 25 verarbeitete Abfragen.