Fehler in Summenberechnung

Die Möglichkeiten und Tücken von Formularen
Antworten
dape
Beiträge: 5
Registriert: 25.06.2013, 18:21

Fehler in Summenberechnung

Beitrag von dape » 06.08.2013, 09:21

Hallo Zusammen,

ich bin gerade am verzweifeln. Ich baue gerade eine Matrix auf in der eine Summe über verschiedene Felder zu berechnen ist.

Die Zeilen schauen ungefähr so aus:

Ein Feld mit SummeGesamt sowie 5 Felder über welche die Summe berechnet werden soll.

der zugehörige Code:

getField("AntragGesamt").value = getField("Antrag1").value + getField("Antrag2").value +  getField("Antrag3").value+ getField("Antrag4").value + getField("Antrag5").value + getField("Antrag6").value;

Über die Spalten wird auch summiert.

Ich habe wie in einen Post von euch beschrieben (http://www.acronaut.de/forum8/1219.html) eine Funktion im Java Skript erstellt, um alle Felder in der Matrix immer aktuell zu halten.

Leider berechnet die Formel oben wenn ich in felder bspw. 2 und 3 eintrage zum Teil 5 aber zum Teil schreibt er einfach beide Zahlen hintereinander also 23!!!!

Ich kann mir nicht erklären warum.

Hat einer von euch eine Ahnung? Bin schon seit 2 Tagen mit dem Problem beschäftigt.

Vielen Dank

 

dape
Beiträge: 5
Registriert: 25.06.2013, 18:21

Fehler in Summenberechnung

Beitrag von dape » 06.08.2013, 10:01

Zusatz:

bin immer noch auf der Fehlersuche:

wenn alle zellen einer Berechnung ausgefüllt sind wird die Gesamtsumme richtig berechnet.

Falls eine Zelle nicht ausgefüllt ist, schreibt Adobe einfach die Zahlen hintereinander.

Ich werd noch verückt!


Benutzeravatar
FileAffairs
Beiträge: 372
Registriert: 15.09.2008, 20:14

Fehler in Summenberechnung

Beitrag von FileAffairs » 06.08.2013, 10:47

Hallo dape,

das hängt damit zusammen das Du von der internen Typumwandlung in JavaScript abhängig bist. Sind alle Werte numerisch so werden diese vor der Summierung in Zahlen umgewandelt und addirt. Hast Du aber ein leeres Feld so bekommst Du da einen leeren String d.h. die gesamte Anweisung wird als Verkettung aufgefasst.

Lösungsmöglichkeiten:
# auf leerfelder prüfen und diese aus der Berechnung rauslassen
# explizite Typkonvertierung vor Berechnung (parseInt() bzw. parseFloat())

Lieben Gruß

Maruan Sahyoun | fileaffairs.de


dape
Beiträge: 5
Registriert: 25.06.2013, 18:21

Fehler in Summenberechnung

Beitrag von dape » 06.08.2013, 16:18

Hallo Maruan,

vielen Dank für deine Antwort.

Die String Verkettung der leeren Zellen hat den Ausschlag gegeben.

Habe die Funktion Number() angewendet.

Das heißt ich habe alle Zellen erstmal in eine Nummer umgewandelt. Bei "" gibt die Funktion Number() 0 zurück, was für die Berechnung sinnvoll ist:)

Berechnungen Funktionieren jetzt einwandfrei. Danke nochmal für den Hinweis. Hätte ich alleine nicht hinbekommen.

Beste Grüße

david

Antworten