[GastForen Programme Web/Internet PDF Grundlagen / Web / eForms Zeitberechnung wird bei Änderung nicht automatisch aktualisiert

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

Zeitberechnung wird bei Änderung nicht automatisch aktualisiert

eyedanTT
Beiträge gesamt: 57

30. Jun 2004, 10:10
Beitrag # 1 von 7
Bewertung:
(2237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich habe mit folgender Zeitberechnung für meinen Stundenarbeitszettel gearbeitet:
--------------------------------------
f=this.getField("VormittagsBeginn");
g=this.getField("VormittagsEnde");

//Umrechnen der Zeiten in Minuten
var min_f = (Math.floor(f.value) * 60) + (f.value - Math.floor(f.value))*100 ;
var min_g = (Math.floor(g.value) * 60) + (g.value - Math.floor(g.value))*100 ;

//Differenz in Minuten
var diff = Math.round(min_g - min_f);

//Differenz in Stunden (mit Dezimalstellen!)
var diffDez = diff/60;

event.value = diffDez;
--------------------------------------
Diese habe ich einmal für die Vormittags- und einmal für die Nachmittags-Arbeitszeit (natürlich mit geänderten variablen) verwendet.
Die beiden Endwerte habe ich per "Summe" zur Gesamtarbeitszeit berechnet.

Bei einmaligem Eintragen der Zeitwerte im fertigen Formular klappt alles reibungslos. Nur wenn ich nachträglich z.B. aus 12.00 Uhr ein 12.18 mache, wird meine Gesamtarbeitszeit nicht mehr aktualisiert. Ich muss dann immer erst den Wert bei "Gesamtarbeitszeit" löschen und per Tab in das nächste Feld springen. Dann aktualisiert Acrobat endlich.

An was liegt das? Gibt's dafür vielleicht ein Aktualisierungs-Script?


Gruß
Daniel
---------------------
PowerBook 15'', 1,25 GHz, MacOS 10.4
X

Zeitberechnung wird bei Änderung nicht automatisch aktualisiert

Marc Véron
Beiträge gesamt: 484

3. Jul 2004, 12:35
Beitrag # 2 von 7
Beitrag ID: #94746
Bewertung:
(2237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

Wo wird denn das Script aufgerufen? - Ich schaue auch gern mal das ganze Formular an. (Bei Interesse an veron@veron.ch senden)

Gruss aus Allschwil
Marc Véron
http://www.veron.ch


als Antwort auf: [#94099]

Zeitberechnung wird bei Änderung nicht automatisch aktualisiert

Marc Véron
Beiträge gesamt: 484

7. Jul 2004, 09:11
Beitrag # 3 von 7
Beitrag ID: #95425
Bewertung:
(2237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

Für alle noch ein Teil der Antwort aufgrund des mir zugesandten Formulars:
------
Am besten entfernen Sie die Berechnungen aus den Feldern
VormittagsSumme und NachmittagsSumme und handeln dann alles im Feld
ArbeitszeitSumme ab. Dadurch ist aller Code an einem Ort konzentriert,
was die Entwicklung und die Fehlersuche viel einfacher macht - und was
sicherstellt, dass sich nicht verschiedene Berechnugs-Scripts in die
Quere kommen.

Statt event.value = diffDez; sollten Sie dann explizit das Feld
ansprechen, also so etwas wie

var t = this.getField("ArbeitszeitSumme");
if (t) //Nur ausführen, wenn Feld vorhanden
{
t.value = ...HIER ERGEBNIS ZUWEISEN
}
------

Gruss aus Allschwil
Marc Véron
http://www.veron.ch


als Antwort auf: [#94099]

Zeitberechnung wird bei Änderung nicht automatisch aktualisiert

Ramius
Beiträge gesamt: 208

7. Jul 2004, 19:14
Beitrag # 4 von 7
Beitrag ID: #95601
Bewertung:
(2237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Also ich hab ein Ähnliches Problem. Der Code ist der selbe aber mein Summen-Feld berechnet gar nichts.

Auch wenn ich im Summenfeld am Schluss das Script

var t = this.getField("Text3");
if (t) //Nur ausführen, wenn Feld vorhanden
{
t.value = diffDez}

anfüge. Nichts wird berechnet!
Irgendwie habe ich da was falsches eingestellt.

Gruss Ramius


als Antwort auf: [#94099]

Zeitberechnung wird bei Änderung nicht automatisch aktualisiert

Marc Véron
Beiträge gesamt: 484

7. Jul 2004, 19:44
Beitrag # 5 von 7
Beitrag ID: #95605
Bewertung:
(2237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Abend,

Fragen:

Wo wird der Code aufgerufen? - Im Berechnen-Ereignis von "Text3"?

Existiert das Feld unter diesem Namen (Gross-Kleinschreibung beachten)?

Was steht in der Variablen diffDez?

Einfacher Testcode:

var t = this.getField("Text3");

app.alert(diffDez);
if (t) //Nur ausführen, wenn Feld vorhanden
{
t.value = diffDez;
}
else
{
app.alert("Feld exisitert nicht");
}

Gruss
Marc Véron
http://www.veron.ch



als Antwort auf: [#94099]

Zeitberechnung wird bei Änderung nicht automatisch aktualisiert

Ramius
Beiträge gesamt: 208

8. Jul 2004, 00:00
Beitrag # 6 von 7
Beitrag ID: #95668
Bewertung:
(2237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Tut mir leid, aber auch so kriege ich kein Ergebnis.

Der Code wird im Berechnen-Ereignis von "Text3" aufgerufen.
Feld existiert
In der Variablen diffDez steht: var diffDez = diff/60;

Ich habe das ganze neu geschrieben, aber half nichts. Das einzige was ich herausgefunden habe, beim Schliessen des Java-Script Editor bekomme ich die Meldung es sei kein Nummer (NaN)

Vielen Dank für Ihre Geduld
Gruss Ramius


als Antwort auf: [#94099]

Zeitberechnung wird bei Änderung nicht automatisch aktualisiert

Marc Véron
Beiträge gesamt: 484

8. Jul 2004, 08:45
Beitrag # 7 von 7
Beitrag ID: #95707
Bewertung:
(2237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

NaN (Not a Number) kann zum Beispiel bedeuten, dass versucht wurde, eine Zeichenkette durch eine Zahl zu divideren. Ich würde mal die Variable diffDez genauer anschauen bzw. den Code, der ihr einen Wert zuweist.

Ich schaue sonst mal das Formular an (bitte direkt senden an veron@veron.ch).

Gruss aus Allschwil
Marc Véron
http://www.veron.ch



als Antwort auf: [#94099]
X