Seite 1 von 1
Berechnung in Java Script und FormCalc
Verfasst: 15.03.2012, 13:07
von Üsch
Hallo,
ich habe ein Formular in dem die geleisteten Mehrarbeitsstunden berechnet werden.
Hierfür habe ich JavaScript verwendet, da ich im Forum eine passende Formel finden konnte. Nun habe ich aber ein zweites Feld, welches die Ergebnisse über mehrere Zeilen addieren soll. Alle Versuche es mit Script oder Formcalc hinzubekommen funktionieren nicht. Kann mir jemand die korrekte Formulierung verraten und woran es liegt?:)
Einsatz Remote: von - bis = Std -> dieses Ergebnis dann addiert in das Feld Stunden gesamt funktioniert nicht.
Eine weitere Frage zu meinem Formular:
Ist es möglich ein Datumsfeld so zu programmieren, dass bei Auswahl eines Samstag oder Sonntag bereits automatisch ein Kontrollkästchen aktiviert wird?
Berechnung in Java Script und FormCalc
Verfasst: 16.03.2012, 09:45
von radzmar
Das mit den Kontrollkästchen kannst du folgendermaßen lösen.
Erstmal löscht du die bestehende Skripte aus Kontrollkästchen.
Dann fügst die diese Skript (FormCalc) in das claculateEvent von Std_Rufbereitschaft hinzu.
Code: Alles auswählen
var hours
if (Num2Date(Date2Num(System1.formattedValue, "DD.MM.YYYY"), "E") eq 7) then
hours = 24
Sa.rawValue = 1
So.rawValue = 0
elseif (Num2Date(Date2Num(System1.formattedValue, "DD.MM.YYYY"), "E") eq 1) then
hours = 24
Sa.rawValue = 0
So.rawValue = 1
else
if (Nacht.rawValue eq 1) then
hours = 24
else
hours = 13
endif
Sa.rawValue = 0
So.rawValue = 0
endif
$ = hours
Frage: Wie sollen die zusammengerechneten Stunden angezeigt werden? Nur voll als volle Stunden ausgerundet oder als Dezimalzahl (z.B. 3,75) oder wie eine Uhrzeit (03:45)
Berechnung in Java Script und FormCalc
Verfasst: 16.03.2012, 09:50
von Üsch
Super, das werde ich gleich mal ausprobieren.
Die Stunden sollen als Uhrzeit dargestellt werden.
Berechnung in Java Script und FormCalc
Verfasst: 16.03.2012, 11:23
von radzmar
Ok,
die Zeitberechnung in Remote_Std hab ich folgendermaßen realisiert:
Code: Alles auswählen
var fullTime = 0
var result = 0
var msPerHr = 3600000
if (HasValue(von_R) and HasValue(bis_R)) then
if (Time2Num(von_R.formattedValue, "HH:MM") lt Time2Num(bis_R.formattedValue, "HH:MM")) then
fullTime = Abs(Time2Num(von_R.formattedValue, "HH:MM") - Time2Num(bis_R.formattedValue, "HH:MM")) / msPerHr
else
fullTime = 24 - Abs(Time2Num(bis_R.formattedValue, "HH:MM") - Time2Num(von_R.formattedValue, "HH:MM")) / msPerHr
endif
result = fullTime
endif
$ = Num2Time(-3599999 + (result * msPerHr + 1), "HH:MM")
Und um nun die Gesamtstunden in Gesamtsumme_Std zu berechen:
Code: Alles auswählen
var hours = 0
var minutes = 0
var instances = SAP_Zeile1.instanceManager.count - 1
for i = 0 upto instances step 1 do
hours = hours + Num2Time(Time2Num(SAP_Zeile1[i].Remote_Std, "HH:MM"), "H")
minutes = minutes + Num2Time(Time2Num(SAP_Zeile1[i].Remote_Std, "HH:MM"), "M")
endfor
$ = Concat(Format("z99", hours + Floor(minutes / 60)), ":", Format("99", Mod(minutes, 60)))
Berechnung in Java Script und FormCalc
Verfasst: 16.03.2012, 12:15
von Üsch
Ein Traum!!!
Vielen, vielen Dank schon mal!
Eine Bitte habe ich noch. Es gibt den Fall, das an einem Wochentag die "Anzahl der Stunden Bereitschaft" nicht immer gleich sind oder gar nicht anfallen, also individuell eingegeben werden müssen. Kann man dies so steuern, dass nur an normalen Wochentagen keine automatische Befüllung eintritt?
Schon mal Danke im Voraus.
Berechnung in Java Script und FormCalc
Verfasst: 16.03.2012, 15:58
von radzmar
Ja, auch das ist möglich. Dafür muss das Skript nur etwas erweitert werden.
Code: Alles auswählen
var hours
if (Num2Date(Date2Num(System1.formattedValue, "DD.MM.YYYY"), "E") eq 7) then
hours = 24
Sa.rawValue = 1
So.rawValue = 0
elseif (Num2Date(Date2Num(System1.formattedValue, "DD.MM.YYYY"), "E") eq 1) then
hours = 24
Sa.rawValue = 0
So.rawValue = 1
else
if (Nacht.rawValue eq 1) then
hours = 24
else
hours = 0
endif
Sa.rawValue = 0
So.rawValue = 0
endif
if (hours ne 24) then
$.access = "open"
$.calculate.override = "disabled"
else
$.access = "readOnly"
$.calculate.override = "warning"
endif
$ = hours
Berechnung in Java Script und FormCalc
Verfasst: 19.03.2012, 14:28
von Üsch
Vielen Dank, jetzt klappt alles nach Wunsch.
Hätte ich alleine nie im Leben hinbekommen