[GastForen Programme Web/Internet PDF Grundlagen / Web / eForms Zeiten addieren im PDF Formular

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Web/Internet - Webdesign, eForms
Themen
Beiträge
Moderatoren
Letzter Beitrag

Zeiten addieren im PDF Formular

schmalen
Beiträge gesamt: 11

23. Sep 2022, 13:01
Beitrag # 1 von 6
Bewertung:
(10050 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Habe mir ein PDF Formular erstellt, und würde gerne die Zeiten aus den Feldern addieren.
Leider werden nur StundenFeld1 und StundenFeld2 zusammen addiert, StundenFeld3 eben nicht.

Was habe ich übersehen?

Zusätzlich sollte noch ein Feld für Zuschlag hinzugefügt werden in Zukunft,
aber erstmal step for step ;-)

Danke schon mal im Voraus für die weitere Hilfe

Gruss Andreas


var Minuten = [0,0,0] ;
for (i = 1; i < 4; i++) {
if (this.getField("VonFeld" + i).value && this.getField("BisFeld" + i).value) {
Minuten[i] = (1440 + inMinuten(this.getField("BisFeld" + i).value) - inMinuten(this.getField("VonFeld" + i).value)) % 1440 ;
this.getField("StundenFeld" + i).value = MinutenZuZeitstring(Minuten[i])
} else {
this.getField("StundenFeld" + i).value = ""
}
}
event.value = MinutenZuZeitstring(Minuten[1] + Minuten[2]) ;


function inMinuten(Zeitstring) {
var arr = (Zeitstring + ":0").split(":").map(Number) ;
return arr[0] * 60 + arr[1]
}

function MinutenZuZeitstring(Minuten) {
return Math.floor(Minuten / 60) + (100 + Minuten % 60).toString().replace(/^1/,":") ;
}
X

Zeiten addieren im PDF Formular

Thomas Richard
Beiträge gesamt: 19324

24. Sep 2022, 15:05
Beitrag # 2 von 6
Beitrag ID: #584456
Bewertung:
(9667 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Auf die Schnelle vermutet:

Zitat i = 1; i < 4; i++

Du fängst mit 1 an, prüfst auf kleiner 4, und addierst eins hoch, somit wird der erste Durchgang mit i=2 gemacht, der 2. mit i=3 und der dritte wird abgelehnt weil i=4 nicht mehr mit i<4 vereinbar ist.

Also entweder umsortieren, mit 0 anfangen, oder auf i<5 umtippen.


als Antwort auf: [#584449]

Zeiten addieren im PDF Formular

schmalen
Beiträge gesamt: 11

24. Sep 2022, 17:49
Beitrag # 3 von 6
Beitrag ID: #584457
Bewertung:
(9647 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Dir Thomas, leider hat das so auch nichts gebracht, ich verstehe nicht warum der die Zeilen nicht durch geht.

Gibts eine Möglichkeit das PDF(klein) mit anzuhängen, oder wie macht man das hier im Forum?

Gruss
Andreas


als Antwort auf: [#584449]

Zeiten addieren im PDF Formular

schmalen
Beiträge gesamt: 11

24. Sep 2022, 18:43
Beitrag # 4 von 6
Beitrag ID: #584458
Bewertung:
(9599 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Dir Thomas, leider hat das so auch nichts gebracht, ich verstehe nicht warum der die Zeilen nicht durch geht.

Ich habe ein PDF angehängt evtl. gibts da eine Lösung?

Gruss
Andreas

P.S. weis jemand wie ich in meinem 1. Beitrag eine Datei anhängen kann? Leider kann man nur zitieren und antworten aber nicht ändern


als Antwort auf: [#584457]
(Dieser Beitrag wurde von schmalen am 24. Sep 2022, 18:52 geändert)

Anhang:
DemoStundenNachweis.pdf (52.2 KB)

Zeiten addieren im PDF Formular

schmalen
Beiträge gesamt: 11

3. Okt 2022, 12:15
Beitrag # 5 von 6
Beitrag ID: #584526
Bewertung:
(9301 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hab es soweit noch hinbekommen. Habe da noch ein Problem, ich habe jetzt in den Feldern Gesamt1,Gesamt2 bis Gesamt7. die Summen. Diese wollte ich in einem Feld "Gesamtsumme" nun anzeigen lassen, also addieren.

Ich hatte mir ein Script gebaut

var a = this.getField("Gesamt1").value ;
var b = this.getField("Gesamt2").value ;
var c = this.getField("Gesamt3").value ;
var d = this.getField("Gesamt4").value ;
var e = this.getField("Gesamt5").value ;
usw...

event.value = a + b + c + d + e ;

Leider wird mir aber die Gesamtsumme nicht addiert, sondern im Feld hintereinander angezeigt.

Ich habe mich etwas eingelesen, das man noch die Werte in einem MinutenZuZeitstring. umwandeln muss, und da hapert es bei mir.

Ich glaube das es so ungefähr aussehen soll ???

this.getField("Gesamt1").value = MinutenZuZeitstring(this.getField("Gesamt1").value);

Wäre für jede Hilfe äusserst Dankbar


als Antwort auf: [#584458]

Zeiten addieren im PDF Formular

Thomas Richard
Beiträge gesamt: 19324

5. Okt 2022, 10:18
Beitrag # 6 von 6
Beitrag ID: #584534
Bewertung:
(9220 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf:
Code
event.value = a + b + c + d + e ; 


Leider wird mir aber die Gesamtsumme nicht addiert, sondern im Feld hintereinander angezeigt.

Acrobat vermutet, dass es sich bei den Werten der Variablen a bis e um Texte handelt, daher werden sie, wie für strings üblich, per + einfach aneinander gehängt.

Du kannst Java zwingen einen Feldwert als Zahl zu interpretieren indem du bereits bei der Zuweisung eine mathematische Operation ausführen lässt. Ab da ist es dann kein String sondern ein Wert vom Typ Number:
Code
var a = this.getField("Gesamt1").value * 1 ; 



Antwort auf: Ich habe mich etwas eingelesen, das man noch die Werte in einem MinutenZuZeitstring. umwandeln muss, und da hapert es bei mir.

Ich glaube das es so ungefähr aussehen soll ???

this.getField("Gesamt1").value = MinutenZuZeitstring(this.getField("Gesamt1").value);

Wäre für jede Hilfe äusserst Dankbar


Da hat wohl jemand eine Funktion gebaut, die das umwandeln der Zeiten übernimmt, die fehlt bei dir allerdings. Kannst du mal die Quelle nennen?

Ich hab mir dein PDF gestern mal angesehen, und kann den Fehler bestätigen, dass nur die ersten beiden Zeiten addiert werden. Aber worans liegt, hab ich auch nicht erkennen können.

Du hast nur ein einziges Script an dem Feld für die Gesamtzeit, welches auch die Berechnung der Zeiten aus den Von und Bis Feldern übernimmt.

Entweder werden die Zeiträume nicht alle erzeugt oder das aufsaldieren tuts nicht.
Wäre das ganze getrennt in je ein Script je Zeitdifferenzfeld und ein Script nur für die Summe aus diesen, wäre es leichter nachvollziehbar.


als Antwort auf: [#584526]
X