Hallo Franz,
ich bin so langsam auch komplett durcheinander. Muss an der Hitze liegen. Und ich habe vermutlich einiges bei Dir nicht so kapiert wie Du es gemacht hast.
1: Funktion rechnen. Ich hatte Dich so verstanden, dass diese Funktion eine Spalte aufsummiert. Nö. Tut sie nicht. Sie summiert eine Zeile. D.h. der Parameter spalte
sollte in zeile
umbenannt werden (und natürlich jeder Gebrauch von spalte
in dieser Funktion auch.
2: Funktion rechnen_s4. Diese Funktion bildet Spaltensummen, ich hatte gedacht, das wären Zeilensummen gewesen. Der Schleifenzähler darin zählt aber nur bis 3. Und du hast jetzt 4 Spalten. Darum wird die 4. Spalte nicht summiert.
3: rechnen(4) bildet die Summe von Zeile 4, also die Summe der Spaltensummen. Ist das das, was Du willst? Um die Gesamtsumme zu bilden, kannst Du auch in rechnen_s4 die Spaltensummen aufsummieren - hier habe ich deine Frage mit dem zwischenspeichern nicht richtig gedeutet.
function rechnen_s4() {
let total = 0;
for (let i=1; i<=4; i++) {
let summe = getInputAsFloat(document.formular1["Wert1"+i] )+
getInputAsFloat(document.formular1["Wert2"+i] )+
getInputAsFloat(document.formular1["Wert3"+i] );
total += summe;
document.getElementById("Wert4"+i).value = summe;
}
document.getElementById("Wert4).value = total;
}
So, wie Du es im Moment hast, bildest Du zuerst die Zeilensummen, darunter auch die Summe der Zeile 4. Danach bildest Du Spaltensummen, was Zeile 4 verändert - aber die Summe der Zeile 4 ("Wert4") nicht. Deshalb zeigt das Gesamtsummenfeld den falschen Wert.
Das mitsummieren in rechnen_s4 behebt das. Alternativ müsstest Du rechnen_s4 zuerst aufrufen, und dann erst rechnen(1) bis rechnen(4), damit Du die richtigen Spaltensummen addierst.
Rolf
sumpsi - posui - obstruxi