Seite 1 von 1

Feld in einem Satz einfügen mit Komma und zwei Nachkommastellen

Verfasst: 13.11.2014, 14:50
von nixbuongiorno
Hallo,

mein Problem erscheint mir so lächerlich und doch hab ich trotz ausgiebiger Suche keine Lösung gefunden.
Ich habe ein Rechnungsformular in dem diverse Positionen addiert werden und dann auch der MwSt-Anteil angezeigt wird. Das klappt auch alles super.
Nun soll abschließend auch noch ein Satz "In diesem Betrag ist MwSt in Höhe von XX,XX € enthalten" stehen. Auch das funktioniert. Leider wird aber der Betrag im Satz mit Punkt statt Komma als Dezimalzeichen angezeigt und auch die Nachkommastellen nur, wenn denn welche da sind. Also statt "19,10 €" steht da "19.1 €".
Beim Feld selbst habe ich unter "Berechnung" das hier:

Code: Alles auswählen

event.value = "In diesem Betrag ist Mehrwertsteuer in Höhe von " + this.getField("GesamtMwSt").value + " € enthalten."
Wie bekomme ich das denn richtig hin?
Danke für die Hilfe schonmal.

Feld in einem Satz einfügen mit Komma und zwei Nachkommastellen

Verfasst: 13.11.2014, 15:52
von armine
Versuche mal "formattedValue" statt "value".
vg armine

Feld in einem Satz einfügen mit Komma und zwei Nachkommastellen

Verfasst: 13.11.2014, 15:58
von nixbuongiorno
Danke für die Antwort.
Leider kommt da nur ein "undefined" heraus.

Feld in einem Satz einfügen mit Komma und zwei Nachkommastellen

Verfasst: 13.11.2014, 17:43
von nele_sonntag
Armine hat recht, gibt es aber leider nur im LCD. Eh besser. :)

Acrobat ist so müßig...schauen wir mal, ob merklin Lust und Zeit hat zu antworten hat, das ist eher sein Gebiet.

Feld in einem Satz einfügen mit Komma und zwei Nachkommastellen

Verfasst: 14.11.2014, 09:09
von nixbuongiorno
Für künftige Formular-Projekte werd ich mich da wohl auch mal einarbeiten, aber vorerst muss der altbewährte Acrobat ran.

Feld in einem Satz einfügen mit Komma und zwei Nachkommastellen

Verfasst: 14.11.2014, 10:13
von armine
Das war wohl nix, mit JavaScript, mir und dem Acrobat.
Als Zeichen tätiger Reue habe ich mal Code von Stephen Chapman verwendet, um das Problem zu lösen:

var Zahl = this.getField("GesamtMwSt").value.toString().replace(/\,/,".")
event.value = "In diesem Betrag ist Mehrwertsteuer in Höhe von " + formatNumber(Zahl, 2 , '.' , ',' , '' , ' €' , '-' , '') + " enthalten."

function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2) {
var x = Math.round(num * Math.pow(10,dec)) ;
if (x >= 0) n1=n2='' ;
var y = (''+Math.abs(x)).split('') ;
var z = y.length - dec ;
if (z<0) z-- ; for(var i = z ; i < 0 ;
i++) y.unshift('0') ;
if (z<0) z = 1 ;
y.splice(z, 0, pnt) ;
if(y[0] == pnt) y.unshift('0') ;
while (z > 3) {z-=3 ;
y.splice(z,0,thou) ;
}
var r = curr1+n1+y.join('')+n2+curr2 ;
return r
// number formatting function
// copyright Stephen Chapman24th March 2006, 22nd August 2008
// permission to use this function is granted provided
// that this copyright notice is retained intact
// http://javascript.about.com/library/blnumfmt.htm
// num = die Zahl
// dec = Dezimalstellen (Anzahl)
// thou = Tausendertrennung
// pnt = Dezimaltrennung
// curr1 = vorgestelltes Währungssymbol
// curr2 = nachgestelltes Währungssymbol
// n1 = vorgestelltes Minus (oder was-auch-immer)
// n2 = nachgestelltes Minus
}

Einmal mehr habe ich das Gefühl, dass das mit dem Acrobat ein Gezerre ist.

vg armine

Feld in einem Satz einfügen mit Komma und zwei Nachkommastellen

Verfasst: 14.11.2014, 10:53
von nixbuongiorno
Passt perfekt.
Vielen vielen Dank!

Feld in einem Satz einfügen mit Komma und zwei Nachkommastellen

Verfasst: 20.11.2014, 12:48
von nixbuongiorno
Wie bereits geschrieben funktioniert das alles super.
Nun habe ich noch ein kleines Problem bei der Optimierung:
wie bekomme ich bei der Textausgabe zwischen den Betrag und das Eurozeichen ein geschütztes Leerzeichen?
Wäre super, wenn mir da jemand helfen könnte.

Feld in einem Satz einfügen mit Komma und zwei Nachkommastellen

Verfasst: 08.12.2014, 14:47
von armine
Das "geschützte Leerzeichen" führt zu einem Zeilenumbruch im Reader/Acrobat. Ein bekannter Fehler, aber Adobe hat ihn noch nicht behoben. Mit "Ziffer-Abstand" geht es aber wie gewünscht.