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
Nicht angemeldet

Login | Registrieren 

  

Suche

Erweiterte Suche

Newsletter

Mitgliederliste

Kalender

Moderatoren/Partner

Hilfe

Banner

Kontakt/Impressum
EMail Schaltfläche mit Überprüfung von Pflichtfeldern
 Moderiert von: WebZopp, Gentleman, FileAffairs, acronaut Produkt: Adobe LiveCycle Designer V9  

Neue Diskussion

Antworten

Drucken
Zahlenübersicht
Bitte wählen Sie eines der folgenden Optionen aus:
   
   
   
Ergebnis
 

Votum
VerfasserBericht
walde
Member
 

Eintragen seit: 1 Mai 2008
Herkunft: Deutschland
Berichte: 613
Status:  Offline
 Geschrieben: 3 Sep 2010 16:18

Text übernehmen

Antworten
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 (105 Mal aufgenommen)

nele_sonntag
Administrator


Eintragen seit: 3 Mai 2009
Herkunft: Frankfurt, Deutschland
Berichte: 2583
Status:  Offline
 Geschrieben: 4 Sep 2010 07:57

Text übernehmen

Antworten
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
 Geschrieben: 4 Sep 2010 10:00

Text übernehmen

Antworten
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 (44 Mal aufgenommen)

walde
Member
 

Eintragen seit: 1 Mai 2008
Herkunft: Deutschland
Berichte: 613
Status:  Offline
 Geschrieben: 4 Sep 2010 10:00

Text übernehmen

Antworten
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
 Geschrieben: 4 Sep 2010 10:37

Text übernehmen

Antworten
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
 Geschrieben: 16 Sep 2010 09:40

Text übernehmen

Antworten
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
 Geschrieben: 16 Sep 2010 09:49

Text übernehmen

Antworten
http://acronaut.de/forum35/966-2.html

marco79
Member
 

Eintragen seit: 10 Nov 2011
Herkunft:  
Berichte: 4
Status:  Offline
 Geschrieben: 11 Nov 2011 07:36

Text übernehmen

Antworten
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
 Geschrieben: 30 Mar 2012 12:32

Text übernehmen

Antworten
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
 Geschrieben: 30 Mar 2012 12:38

Text übernehmen

Antworten
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
 Geschrieben: 4 Dez 2012 03:24

Text übernehmen

Antworten
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
 Geschrieben: 4 Dez 2012 07:11

Text übernehmen

Antworten
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
 Geschrieben: 18 Aug 2014 14:34

Text übernehmen

Antworten
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: 2260
Status:  Offline
 Geschrieben: 18 Aug 2014 16:03

Text übernehmen

Antworten
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 (21 Mal aufgenommen)

Wespe
Member
 

Eintragen seit: 14 Aug 2014
Herkunft: Leipzig, Deutschland
Berichte: 29
Status:  Offline
 Geschrieben: 19 Aug 2014 08:14

Text übernehmen

Antworten
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 (20 Mal aufgenommen)


 Uhrzeit 14:42
Seite:  Erste Seite Vorherige Seite  1  2  3  Nächste Seite Letzte Seite  





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