PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Bildbearbeitung (2D), Vektor- & Layoutbearbeitung
Acrobat
Javascript in Acrobat verhält sich "komisch"
Beitrag
<blockquote data-quote="tomtom69" data-source="post: 2715392" data-attributes="member: 85192"><p>Guten Abend zusammen,</p><p></p><p>ich hätte hier ein Kuriosum für euch, an dem ich grad verzweifele!</p><p></p><p>Ich habe unten stehendes Validierungsscript für ein Formularfeld in Acrobat geschrieben. Dieses hat zum Ziel, dass aus einem eingetragenen Wert der KG Preis bzw. vice-versa der Gesamtpreis errechnet wird (falls eine Veränderung eintritt). Der Aufruf erfolgt über die Feldvalidierung nach Eingabe des Wertes (Preises). Ich habe den Code in einem Reintexteditor geschrieben und per CuP in Acrobat eingefügt. </p><p></p><p>Ich hatte diverse male folgende Fehlermeldung:</p><p><em></em></p><p><em>SyntaxError: missing } in compound statement</em></p><p></p><p>Tatsächlich war aber keine fehlende Klammer zu sehen. Also bin ich nach dem Ausschlussverfahren vorgegangen und habe leere Zeilen gelöscht .. und siehe da, irgendwann hat es keine Fehlermeldung mehr gegeben! Dann habe ich 2 Variablenwerte geändert (Zahlen) und direkt kam wieder die gleiche Fehlermeldung.</p><p></p><p>Ich bin mir auch sicher, dass man das am Ende eleganter lösen könnte, bin aber nicht der riesen Programmierprofi und erstmal geht es um reines Funktionieren ;-)</p><p></p><p>[CODE]</p><p>//---------V0.7.0.sortiment---------------</p><p>//Variablen initialisieren</p><p>//kg-Preis (Standard) zwischenspeichern</p><p>var nameFeldKg = this.getField("kg_4031707").name;</p><p>console.println("Name kg-Feld = " + nameFeldKg);</p><p>var kgIni = this.getField(nameFeldKg).value;</p><p>console.println("Default-Preis (kgIni) = " + kgIni);</p><p>//Gesamt-Preis (Standard) zwischenspeichern</p><p>var nameFeldGesamt = nameFeldKg.replace("kg_","");</p><p>console.println("Name Gesamt-Feld = " + nameFeldGesamt);</p><p>var gesamtIni = this.getField(nameFeldGesamt).value;</p><p>console.println("Default-Gesamt-Preis (gesamtIni) = " + gesamtIni);</p><p></p><p>//Verpackungseinheit in g</p><p>var VE = 1000;</p><p>//Anzahl Verpackungen</p><p>var AnzVE = 8;</p><p>//Preis pro Gramm</p><p>var gPreis = 0;</p><p>//Faktor (Menge g für Gesamtpreis) --- Faktor = AnzVE * VE / 1000</p><p>//var fak = 0;</p><p>var fak = AnzVE * VE / 1000;</p><p>//Gesamtpreis aus neuem eingetragenem kg-Preis</p><p>var gesamtNeu = 0;</p><p>//kg-Preis aus neuem eingetragenem Gesamt-Preis</p><p>var kgNeu = 0;</p><p>//Gesamtgram</p><p>var gGesamt = AnzVE * VE;</p><p></p><p>//RegExp für Euro-Zeichen-Check</p><p>var euro = /[€]/;</p><p></p><p>if(event.target.name == nameFeldKg) {</p><p> console.println("Eingabe in KG Feld: " + nameFeldKg);</p><p></p><p> var kgEingabe = event.value;</p><p></p><p> //wenn kg-Preis anders als Ini, dann mit neuem Wert faktorisieren und auf gesamt übertragen für Feld gesamtpreis nachher vice-versa</p><p> if(kgEingabe != kgIni) {</p><p> //die Zahl vom Eurozeichen trennen</p><p> kgEingabe = kgEingabe.replace("€ ","");</p><p> //komma durch Punkt ersetzen für parseFloat</p><p> kgEingabe = kgEingabe.replace(",",".");</p><p> var kgPreis = parseFloat(kgEingabe).toFixed(2);</p><p> console.println("kg-Preis = " + kgPreis);</p><p></p><p> //Gesamtpreis aus eingetragenem kg-Preis errechnen</p><p> gesamtNeu = kgPreis * fak;</p><p> gesamtNeu = parseFloat(gesamtNeu).toFixed(2);</p><p> gesamtNeu = gesamtNeu.replace(".",",");</p><p> gesamtNeu = "€ " + gesamtNeu;</p><p> console.println("Neuer Gesamt-Preis="+gesamtNeu);</p><p> </p><p> this.getField(nameFeldGesamt).value = gesamtNeu;</p><p> </p><p> //wenn das Euro-Zeichen fehlt, dann ergänzen</p><p> if(euro.test(event.value) == false) {</p><p> event.value = "€ " + event.value;</p><p> console.println("kein Euro");</p><p> };</p><p> };</p><p>};</p><p></p><p>if(event.target.name == nameFeldGesamt) {</p><p> console.println("Eingabe in Gesamt Feld: " + nameFeldGesamt);</p><p></p><p> var gesamtEingabe = event.value;</p><p></p><p> //wenn Gesamt-Preis anders als Ini, dann mit neuem Wert verrechnen und auf kg übertragen für Feld kg-preis</p><p> if(gesamtEingabe != gesamtIni) {</p><p> //die Zahl vom Eurozeichen trennen</p><p> gesamtEingabe = gesamtEingabe.replace("€ ","");</p><p> //komma durch Punkt ersetzen für parseFloat</p><p> gesamtEingabe = gesamtEingabe.replace(",",".");</p><p> var gesamtPreis = parseFloat(gesamtEingabe).toFixed(2);</p><p> console.println("Gesamt-Preis = " + gesamtPreis);</p><p></p><p> //kg-preis aus eingetragenem Gesamt-Preis errechnen</p><p> gPreis = gesamtPreis / gGesamt;</p><p> console.println("Gramm-Preis = " + gPreis);</p><p> kgNeu = gPreis * 1000;</p><p> kgNeu = parseFloat(kgNeu).toFixed(2);</p><p> kgNeu = kgNeu.replace(".",",");</p><p> kgNeu = "€ " + kgNeu;</p><p> console.println("Neuer kg-Preis="+ kgNeu);</p><p> </p><p> this.getField(nameFeldKg).value = kgNeu;</p><p> </p><p> //wenn das Euro-Zeichen fehlt, dann ergänzen</p><p> if(euro.test(event.value) == false) {</p><p> event.value = "€ " + event.value;</p><p> console.println("kein Euro");</p><p> };</p><p> };</p><p>}[/CODE]</p><p></p><p></p><p>Ich stehe auf dem Schlauch - findet einer den Fehler?</p><p></p><p>Danke und sonnige Grüße,</p><p></p><p>Tom</p></blockquote><p></p>
[QUOTE="tomtom69, post: 2715392, member: 85192"] Guten Abend zusammen, ich hätte hier ein Kuriosum für euch, an dem ich grad verzweifele! Ich habe unten stehendes Validierungsscript für ein Formularfeld in Acrobat geschrieben. Dieses hat zum Ziel, dass aus einem eingetragenen Wert der KG Preis bzw. vice-versa der Gesamtpreis errechnet wird (falls eine Veränderung eintritt). Der Aufruf erfolgt über die Feldvalidierung nach Eingabe des Wertes (Preises). Ich habe den Code in einem Reintexteditor geschrieben und per CuP in Acrobat eingefügt. Ich hatte diverse male folgende Fehlermeldung: [I] SyntaxError: missing } in compound statement[/I] Tatsächlich war aber keine fehlende Klammer zu sehen. Also bin ich nach dem Ausschlussverfahren vorgegangen und habe leere Zeilen gelöscht .. und siehe da, irgendwann hat es keine Fehlermeldung mehr gegeben! Dann habe ich 2 Variablenwerte geändert (Zahlen) und direkt kam wieder die gleiche Fehlermeldung. Ich bin mir auch sicher, dass man das am Ende eleganter lösen könnte, bin aber nicht der riesen Programmierprofi und erstmal geht es um reines Funktionieren ;-) [CODE] //---------V0.7.0.sortiment--------------- //Variablen initialisieren //kg-Preis (Standard) zwischenspeichern var nameFeldKg = this.getField("kg_4031707").name; console.println("Name kg-Feld = " + nameFeldKg); var kgIni = this.getField(nameFeldKg).value; console.println("Default-Preis (kgIni) = " + kgIni); //Gesamt-Preis (Standard) zwischenspeichern var nameFeldGesamt = nameFeldKg.replace("kg_",""); console.println("Name Gesamt-Feld = " + nameFeldGesamt); var gesamtIni = this.getField(nameFeldGesamt).value; console.println("Default-Gesamt-Preis (gesamtIni) = " + gesamtIni); //Verpackungseinheit in g var VE = 1000; //Anzahl Verpackungen var AnzVE = 8; //Preis pro Gramm var gPreis = 0; //Faktor (Menge g für Gesamtpreis) --- Faktor = AnzVE * VE / 1000 //var fak = 0; var fak = AnzVE * VE / 1000; //Gesamtpreis aus neuem eingetragenem kg-Preis var gesamtNeu = 0; //kg-Preis aus neuem eingetragenem Gesamt-Preis var kgNeu = 0; //Gesamtgram var gGesamt = AnzVE * VE; //RegExp für Euro-Zeichen-Check var euro = /[€]/; if(event.target.name == nameFeldKg) { console.println("Eingabe in KG Feld: " + nameFeldKg); var kgEingabe = event.value; //wenn kg-Preis anders als Ini, dann mit neuem Wert faktorisieren und auf gesamt übertragen für Feld gesamtpreis nachher vice-versa if(kgEingabe != kgIni) { //die Zahl vom Eurozeichen trennen kgEingabe = kgEingabe.replace("€ ",""); //komma durch Punkt ersetzen für parseFloat kgEingabe = kgEingabe.replace(",","."); var kgPreis = parseFloat(kgEingabe).toFixed(2); console.println("kg-Preis = " + kgPreis); //Gesamtpreis aus eingetragenem kg-Preis errechnen gesamtNeu = kgPreis * fak; gesamtNeu = parseFloat(gesamtNeu).toFixed(2); gesamtNeu = gesamtNeu.replace(".",","); gesamtNeu = "€ " + gesamtNeu; console.println("Neuer Gesamt-Preis="+gesamtNeu); this.getField(nameFeldGesamt).value = gesamtNeu; //wenn das Euro-Zeichen fehlt, dann ergänzen if(euro.test(event.value) == false) { event.value = "€ " + event.value; console.println("kein Euro"); }; }; }; if(event.target.name == nameFeldGesamt) { console.println("Eingabe in Gesamt Feld: " + nameFeldGesamt); var gesamtEingabe = event.value; //wenn Gesamt-Preis anders als Ini, dann mit neuem Wert verrechnen und auf kg übertragen für Feld kg-preis if(gesamtEingabe != gesamtIni) { //die Zahl vom Eurozeichen trennen gesamtEingabe = gesamtEingabe.replace("€ ",""); //komma durch Punkt ersetzen für parseFloat gesamtEingabe = gesamtEingabe.replace(",","."); var gesamtPreis = parseFloat(gesamtEingabe).toFixed(2); console.println("Gesamt-Preis = " + gesamtPreis); //kg-preis aus eingetragenem Gesamt-Preis errechnen gPreis = gesamtPreis / gGesamt; console.println("Gramm-Preis = " + gPreis); kgNeu = gPreis * 1000; kgNeu = parseFloat(kgNeu).toFixed(2); kgNeu = kgNeu.replace(".",","); kgNeu = "€ " + kgNeu; console.println("Neuer kg-Preis="+ kgNeu); this.getField(nameFeldKg).value = kgNeu; //wenn das Euro-Zeichen fehlt, dann ergänzen if(euro.test(event.value) == false) { event.value = "€ " + event.value; console.println("kein Euro"); }; }; }[/CODE] Ich stehe auf dem Schlauch - findet einer den Fehler? Danke und sonnige Grüße, Tom [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Der grüne Frosch hüpft über die Hügel an den Bäumen vorbei in die Höhle. Bitte nenne das zweite Wort!
Antworten
Start
Forum
Bildbearbeitung (2D), Vektor- & Layoutbearbeitung
Acrobat
Javascript in Acrobat verhält sich "komisch"
Oben