Connect failed: Connection timed out

[GastForen Programme Web/Internet PDF Grundlagen / Web / eForms Unausgefülltes Feld für Berechnung wechselt von nan zu 1,#R im Windows Acrobat

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

Unausgefülltes Feld für Berechnung wechselt von nan zu 1,#R im Windows Acrobat

Thomas Richard
Beiträge gesamt: 19327

18. Jul 2021, 00:10
Beitrag # 1 von 3
Bewertung:
(14740 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich hab hier ein seltsames Phänomen, das ich zwar inzwischen umschifft habe, aber nach wie vor nicht verstehe.

Ich habe für einen Stundenzettel zwei Spalten mit Arbeitsbeginn und Ende im Format HH:MM die vom Benutzer auszufüllen sind.

Nachdem die beiden Werte eingegeben wurden erscheint in einer dritten Spalte die Dauer, die aus der Differenz der beiden Zeiten berechnet wird und in Dezimalschreibweise überführt wird. Also nicht mehr HH:MM sondern x,y Stunden.
In der vierten Zeile landet dann der tägliche Lohnbetrag, indem die Arbeitszeit mit dem Stundenlohn multipliziert wird.

Die Felder für Arbeitszeit und Tagessumme sind ausgeblendet, bis sie sinnvoll berechnet werden können.
Die leeren Arbeitsbeginn- und Arbeitsende-Felder führen somit bei der Berechnung der Stunden zu einem nan, da leere Felder eben keine 0 sind und somit nicht sinnvoll zu berechnen sind.

Soweit alles schön und gut. Das ganze lässt sich am Mac mit Acrobat Pro oder Reader ausfüllen, sogar am iPhone per Acrobat geht das Ausfüllen, mit dem Manko, dass die berechneten Zellen im Acrobat berechnet aber nicht angezeigt werden, aber wenn man dann auf 'Kopie versenden' geht, bekommt man das ausgefüllte Formular in der Mail mit der systemeigenen Quickviewfunktion ausgefüllt zu sehen (wobei die Option 'Ausgeblendet' mehr oder weniger nach Lust und Laune honoriert wird …)
PDF Expert 7 mach da einen deutlich solideren Eindruck.


Langer Rede, kurzer Sinn:
Das eigentliche Problem ergibt sich mit den Windowsversionen des Acrobat. Sowohl Reader als auch Pro machen aus den nan Einträgen irgendwie ein 1,#R sobald man auch nur an irgendetwas dran geht. Was dann dazu führt, dass die Berechnungen aller Felder fehlschlagen …

Hier die Finder quickview Ansicht des frischen Dokuments:



und nachdem man unter Windows irgendwas angeklickt, und drübergespeichert hat:



Und hier ein Extrakt des Formulars zum Nachvollziehen:

per Rechtsklick herunterladen/speichern


… und noch die Acrobatversionen mit denen ich es nachvollzogen habe:


(Dieser Beitrag wurde von Thomas Richard am 18. Jul 2021, 00:14 geändert)

Anhang:
nan-Problem_vorher.png (110 KB)   nan-Problem_nachher.png (111 KB)   Versionen_Acrobat.png (222 KB)   Test_Stundenzettel.pdf (47.8 KB)
X

Unausgefülltes Feld für Berechnung wechselt von nan zu 1,#R im Windows Acrobat

Thomas Richard
Beiträge gesamt: 19327

18. Jul 2021, 00:20
Beitrag # 2 von 3
Beitrag ID: #580561
Bewertung:
(14727 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ach so: Hier noch meine aktuelle Umschiffung des Problems:

Code
// Startzeit aus Feld "Uhrzeit 1" (Format "Zeit HH:MM"):   
Von=this.getField("Uhrzeit 1").value;
Von = Von.split(":");

// Endezeit aus Feld "bis_1" (Format "Zeit HH:MM"):
Bis=this.getField("bis_1").value;
Bis = Bis.split(":");

// Startzeit in Minuten seit 00:00h umrechnen:
var StartZeit = Von[0] * 60 + Von[1] * 1;

// Endezeit in Minuten seit 00:00h umrechnen:
var EndeZeit = Bis[0] * 60 + Bis[1] * 1;

// Zeitdifferenz in Minuten (auch tagesübergreifend):
var DiffZeit = ((EndeZeit + 24*60) - StartZeit) % (24*60);
var DezimalZeit1 = (((EndeZeit + 24*60) - StartZeit) % (24*60)) / 60;

if (DezimalZeit1.isNaN)
{event.value= parseFloat(event.value)}
else
{
event.value = DezimalZeit1;
console.println(DezimalZeit1);
event.value = util.printf("%,2.2f", event.value);
console.println(event.value);
}



als Antwort auf: [#580560]

Unausgefülltes Feld für Berechnung wechselt von nan zu 1,#R im Windows Acrobat

Thomas Richard
Beiträge gesamt: 19327

18. Jul 2021, 20:47
Beitrag # 3 von 3
Beitrag ID: #580564
Bewertung:
(14667 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sodele, inzwischen hab ichs so hinbekommen, dass jegliche Nichtzeiten als 0 eingetragen werden:


Code
event.value = parseFloat(DezimalZeit1) || 0; 
event.value = util.printf("%,2.2f", event.value);


Sogar ohne jegliche Verzweigung für ordentlich ausgefüllte und halb oder garnicht befüllte Felder.


als Antwort auf: [#580561]