mcbinz
Goto Top

PDF- Formular - Berechnung mit if- Abfrage

Hallo zusammen,

ich bin gerade dabei ein PDF- Fomular zu erstellen, dass auch Berechnungen durchführen soll.

Es geht um die Berechnung einer Gesamtnote in einem Beurteilungsformular.

Die Gesamtnote ist der Durchschnitt von 4 Einzelbewertungen (Arbeitsweise, Arbeitseinsatz, Arbeitserfolg, Soziale Kompetenz).

Wenn jemand Führungsaufgaben hat, dann gibt es 6 Einzelbewertungen und es werden zu den o.g. Bewertungen noch Führungsverhalten 1 und Führungsverhalten 2 ergänzt. .

Abhängig davon ob jetzt jemand Führungsaufgaben hat oder nicht, will ich die Gesamtnote berechnen.

Für die Abfrage der Führungsaufgaben gibt es ein Optionsfeld mit dem Wert "Ja" oder "Nein".

Ich habe dafür jetzt folgendes JavaScript Code erstellt, der aber leider nicht nicht funktioniert. Könnt Ihr mir bei der richtigen Syntax helfen?

var fuehrungsaufgaben = this.getField("Fuehrungsaufgaben").value;  
if(fuehrungsaufgaben = "off")  
{
this.getField("GesamtnoteLeistungsbeurteilung").value = 0;  
}
else if(fuehrungsaufgaben = "ja")    
{
this.getField("GesamtnoteLeistungsbeurteilung").value = (this.getField("Arbeitsweise").value + this.getField("Arbeitseinsatz").value + this.getField("Arbeitserfolg").value + this.getField("SozialeKompetenz").value + this.getField("Fuehrungsverhalten1").value + this.getField("Fuehrungsverhalten2").value)/6;  
}
else
{
this.getField("GesamtnoteLeistungsbeurteilung").value = (this.getField("Arbeitsweise").value + this.getField("Arbeitseinsatz").value + this.getField("Arbeitserfolg").value + this.getField("SozialeKompetenz").value)/4;    
}

Content-Key: 512751

Url: https://administrator.de/contentid/512751

Printed on: April 26, 2024 at 10:04 o'clock

Member: TripleDouble
Solution TripleDouble Nov 07, 2019 at 13:37:37 (UTC)
Goto Top
Hallo,

der Vergleichsoperator sollte wohl == sein:

if(fuehrungsaufgaben == "off")  

Gruß - TD
Member: McBinz
McBinz Nov 07, 2019 at 14:28:27 (UTC)
Goto Top
Super, das war der Fehler und es klappt.

Viele Dank
Member: McBinz
McBinz Nov 19, 2019 at 11:55:26 (UTC)
Goto Top
Hallo zusammen,

ich habe das o.g. Script noch ergänzt. Und zwar muss das Ergebnis der Einzelnoten (Arbeitsweise, Arbeitserfolgt etc.) auf eine Stelle nach dem Komma gerundet werden und die GesamtnoteLeitungsberurteilung aus den gerundeten Einzelnoten berechnet werden.

Aus diesem Grund habe ich die Math.round Funtion ergänzt. Ich habe in bestimmten Sitationen aber einen seltsamen Effekt und zwar dann, wenn ich die Führungsaufgaben mit dem Wert = "Ja" habe und die Bewertung vom Ende beginne. Dann habe ich bei der GesamtnoteLeitungsbeurteilung einen falschen Wert, wenn ich die Einzelnoten von Führungsverhalten 1 und 2 ausgefüllt habe.

Im Screenshot zu sehen, kommt als Ergebnis 0,8333333 raus (alle anderen Einzelnoten sind 0). Richtig wäre aber 0,95 (siehe Screenshot)

gesamtnoteleistungsbeurteilung-mitfuehrungsaufgaben

Bei der Variante ohne Führungsaufgaben macht es keinen Unterschied, ob ich mit der Benotung von oben oder unten beginne.

einzelnoten-ohnefuehrungsaufgaben
gesamtnoteleistungsbeurteilung-ohnefuehrungsaufgaben

var fuehrungsaufgaben = this.getField("Fuehrungsaufgaben").value;  
if(fuehrungsaufgaben == "off")  
{
this.getField("GesamtnoteLeistungsbeurteilung").value = 0;  
}
else if(fuehrungsaufgaben == "ja")    
{
this.getField("GesamtnoteLeistungsbeurteilung").value = (((Math.round(this.getField("Arbeitsweise").value*10))/10) + ((Math.round(this.getField("Arbeitseinsatz").value*10))/10) + ((Math.round(this.getField("Arbeitserfolg").value*10))/10) + ((Math.round(this.getField("SozialeKompetenz").value*10))/10) + ((Math.round(this.getField("Fuehrungsverhalten1").value*10))/10) + ((Math.round(this.getField("Fuehrungsverhalten2").value*10))/10))/6;  
}
else
{
this.getField("GesamtnoteLeistungsbeurteilung").value = (((Math.round(this.getField("Arbeitsweise").value*10))/10) + ((Math.round(this.getField("Arbeitseinsatz").value*10))/10) + ((Math.round(this.getField("Arbeitserfolg").value*10))/10) + ((Math.round(this.getField("SozialeKompetenz").value*10))/10))/4;    
}