ich bin neu hier und habe auch schon die Forensuche bedient, komme aber mit meinem Problem nicht weiter. Ich habe eine pdf-Datei als Formular erstellt, in der ich zwei Felder habe, in der Zeiten eingetragen werden sollen. In einem dritten Feld soll die Summe dieser Zeiten ausgegeben werden, wobei hier nicht nur 24 Stunden möglich sind und der Tag anschließend neu anfängt, sondern die Gesamtstunden bzw. -minuten interessant sind.
JS-Erfahrung ist bei mir gen Null. Vieles habe ich mir im Internet zusammengesucht, aber auch ChatGPT habe ich zur Unterstützung genommen.
Ich komme aber einfach nicht mit meinem Problem weiter.
Den folgenden Code habe ich bei "Eigenschaften" - "Berechnung" unter "Benutzerdefiniertes Berechnungsskript" eingegeben, allerdings bekomme ich im Feld 3 einfach kein Ergebnis raus. Ich habe das Dokument mal auf das wesentliche reduziert und füge es hier mit bei.
Vielen Dank auch schon im Voraus für die Unterstützung.
Schöne Grüße
Daniel
Code: Alles auswählen
// Funktion, um zwei Zeiten im Format "HH:mm" zu addieren und das Ergebnis zu überprüfen
function addTimeFields() {
var sportField = this.getField("Feld_1");
var ausbildungField = this.getField("Feld_2");
var gesamtField = this.getField("Feld_3");
console.log()
var sportValue = sportField.value;
var ausbildungValue = ausbildungField.value;
// Parse der Zeiten in Stunden und Minuten
var sportParts = sportValue.split(":");
var ausbildungParts = ausbildungValue.split(":");
var sportHours = parseInt(sportParts[0], 10);
var sportMinutes = parseInt(sportParts[1], 10);
var ausbildungHours = parseInt(ausbildungParts[0], 10);
var ausbildungMinutes = parseInt(ausbildungParts[1], 10);
// Addieren der Stunden und Minuten
var totalHours = sportHours + ausbildungHours;
var totalMinutes = sportMinutes + ausbildungMinutes;
// Überprüfen, ob Minuten größer als 60 sind
if (totalMinutes >= 60) {
totalHours += Math.floor(totalMinutes / 60);
totalMinutes = totalMinutes % 60;
}
// Formatieren der Ergebniszeit
var result = (totalHours < 10 ? "0" : "") + totalHours + ":" + (totalMinutes < 10 ? "0" : "") + totalMinutes;
// Setzen des Ergebnisses im "Feld_3" Feld
gesamtField.value = result;
// Überprüfen, ob das Ergebnis unter 50:00 liegt und das Feld rot hervorheben
if (totalHours < 50) {
gesamtField.fillColor = color.red;
} else {
gesamtField.fillColor = color.transparent; // Zurücksetzen der Hervorhebung
}
}
// Funktion aufrufen, wenn die Felder geändert werden
this.getField("Feld_1").onChange = addTimeFields;
this.getField("Feld_2").onChange = addTimeFields;