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-ID: 512751

Url: https://administrator.de/forum/pdf-formular-berechnung-mit-if-abfrage-512751.html

Ausgedruckt am: 22.12.2024 um 19:12 Uhr

TripleDouble
Lösung TripleDouble 07.11.2019 um 14:37:37 Uhr
Goto Top
Hallo,

der Vergleichsoperator sollte wohl == sein:

if(fuehrungsaufgaben == "off")  

Gruß - TD
McBinz
McBinz 07.11.2019 um 15:28:27 Uhr
Goto Top
Super, das war der Fehler und es klappt.

Viele Dank
McBinz
McBinz 19.11.2019 um 12:55:26 Uhr
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;    
}