[Gelöst] Zeit berechnen und anzeigen

8. September 2010 19:30

Hallo,

ich möchte dem User die Zeit anzeigen die bei einem Prozess verstrichen ist:

Dazu habe ich eine Variable angelegt vom Typ Time:
Code:
TimeStart := TIME;

Im Dialogfenster will ich nun die verstrichene Zeit anzeigen:
Code:
REPEAT
  ...tu was
  Window.UPDATE(3,FORMAT(TimeStart-TIME,0,'<Hours>:<Minutes>'));
UNTIL NEXT =0;

Danach bekomme ich die Fehlermeldung: Ein ungültiges Feld oder Attribut wurde für die Format -Eigenschaft definiert.
<Hours>:<Minutes>'

Was mach ich falsch?

Gruß
Ralf
Zuletzt geändert von ralf5 am 9. September 2010 12:04, insgesamt 1-mal geändert.

Re: Zeit berechnen und anzeigen

8. September 2010 19:39

In der Onlinhile gibts ein paar Beispiele. Demnach könnte das hier funktionieren (habs nicht ausprobiert):
Code:
Window.UPDATE(3,FORMAT(TimeStart-TIME,0,'<Hours24>:<Minutes,2>'));

Re: Zeit berechnen und anzeigen

8. September 2010 20:08

Hallo Natalie

Natalie hat geschrieben:In der Onlinhile gibts ein paar Beispiele. Demnach könnte das hier funktionieren (habs nicht ausprobiert):
Code:
Window.UPDATE(3,FORMAT(TimeStart-TIME,0,'<Hours24>:<Minutes,2>'));


ich weiß, es ist schon spät, aber du hast genau mein Beispiel genommen :lol:
NACHTRAG habe gerade die kleine Änderung gesehen (Hours24>:<Minutes,2) geht aber auch nicht.

Ich glaube der Fehler liegt daran, das TimeStart-TIME ein Integer gibt.

Wie kann ich das aber als Zeit umrechnen?


Gruß Ralf

Re: Zeit berechnen und anzeigen

8. September 2010 20:44

Addiere einfach zu 000000t deine Zeitdifferenz. Dann kannst du dir auch das Formatieren sparen :)

Re: Zeit berechnen und anzeigen

9. September 2010 11:32

McClane hat geschrieben:Addiere einfach zu 000000t deine Zeitdifferenz. Dann kannst du dir auch das Formatieren sparen :)


Meinst du:
Code:
(TIME - TimeStart) + 000000T


Das funktioniert nicht. Da bekomme ich die Fehlermeldung:

Eine Typkonvertierung kann nicht durchgeführt werden, da eine der Seiten einen ungültigen Typ hat.

Integer + Time
Zuletzt geändert von ralf5 am 9. September 2010 12:03, insgesamt 1-mal geändert.

Re: Zeit berechnen und anzeigen

9. September 2010 12:02

Danke für die Hilfe, habs gelöst. :-D

NAV ist ja wirklich sonderbar.

(TIME-TimeStart) + 000000T ergibt schon beim kompilieren einen Fehler und

000000T + (TIME - TimeStart) funktioniert.

im übrigen gehts dann auch noch so
0.0T + (TIME - TimeStart)

Und der Vollständigkeithalber auch noch formatiert:

FORMAT(TimeDiff, 0, '<hours24,2>:<minutes,2>:<Seconds,2><Second dec.>')

Gruß
Ralf

Re: [Gelöst] Zeit berechnen und anzeigen

12. Juli 2011 10:49

Da ich gerade dabei war, eine Info zur verbleibenden Zeit eines Report-DataItem-Durchlaufs anzuzeigen, hier ein Bsp.:

Im OnPreDataItem:

Code:
StartTime := TIME;
LastTime := Time + 1000;
Counter := 0;
IF COUNT > 0 THEN
  Factor := 9999 / COUNT;


Im OnAfterGetRecord:

Code:
Counter += 1;
Window.UPDATE(5, (Counter * Factor) DIV 1);
IF ((TIME - StartTime) > 0) AND ((TIME - LastTime) > 1000) THEN BEGIN
  Window.UPDATE(1,FORMAT(
    0.0T + ROUND((((9999/((Counter * Factor) DIV 1) * (TIME - StartTime)) - (TIME - StartTime))),1),
    0, '<Minutes,2>:<Seconds,2>'));
  LastTime := TIME;
END;


Gegenüber den bisherigen Beiträgen ist die Berechnung drin und die LastItem-Variable, damit die Zeit nicht "flattert" sondern kontinuierlich runter gezählt wird...