Domino 9 und frühere Versionen > ND7: Entwicklung

Ansicht aktualisiert Uhrzeit-Spalte nicht

(1/3) > >>

mschenke:
Hallo zusammen,
ich habe mir mit dem Designer eine Ansicht gebastelt.
Nun möchte ich in der Ansicht das Alter des Dokuments ausgeben, die Formel hierzu habe ich hinbekommen,
aber der Wert in der Ansicht ändert sich nicht (auch nicht wenn ich manuell aktualisiere).
Verlasse ich die Ansicht und ruf diese erneut auf, bekomme ich einen korrekten Wert angezeigt.
Habe das ganze auch mal mit @Now getestet. Die Spalte mit @Now wird in der Ansicht ebenfalls nicht aktualisiert.

Kann man jemand sagen wieso bzw. wie ich das hinbekomme?

Danke und Gruß

Marcel

Mirko:
Hallo Marcel,

ich habe gerade mal in der Hilfe nachgesehen und dort ein Beispiel gefunden zum Thema "Felder für die Anzeige von Zeit und Datum erstellen". Die darin ehthaltenen Formel leicht abgewandelt nach

--- Code: ---@Abs(@Integer((@Now - @Created) / (60 * 60 * 24)))
--- Ende Code ---
zeigt das Dokumentenalter in Tagen an (Client/Server Version 7.0.3) Dabei wird aber permanent das Aktualisierungszeichen eingeblendet und das Öffnen der Ansicht dauert ziemlich lange.

Wie genau soll das Alter bei Dir angezeigt werden ? Vielleicht wäre ein Agent einmal am Tag besser geeignet ?
Zeigt sich das Aktualisierungs-Sybol ? Kannst Du die Formel posten ?

Viele Grüße

Mirko

ascabg:
Hallo,

Sich staendig aktualisierende Ansichten, vor Allem bei Datum und Zeitwerten, sind im allgemeinen sehr performancelastig.
Und daher wird auch immer davon abgeraten.

Am sinnvollsten erscheint ein Agent der 1x am Tag laeuft und in die Dokumente einen entsprechenden Wert in ein Feld schreibt.
Dieses Feld wird dann in der Ansicht entsprechend verwendet.


Andreas

mschenke:
Hallo Mirko,
danke für deine schnelle Antwort.

Hintergrund der Anzeige ist ein (manueller) Eskalationsmechanismus.
Ich möchte also das Alter in Tagen - Stunden - Minuten angezeigt bekommen (mit manueller Aktualisierung).

z. Zt. nutze ich folgenden (noch nicht ganz ausgereiften) Code:

--- Code: ---T1 := @Time(Erstellt);
T2 := @Time(@Now);
T3 := T2 - T1;
T4 := @Round(T3 / 60);

D1 := @Date(Erstellt);
D2 := @Date(@Now);
D3 := D2 - D1;

@If(T4 < 0; TDiff := 24 - T1 + T2; TDiff := T4);
@If(D3 > 0 & T4 < 0; DDiff  := 0; DDiff := D3);

@If(TDiff > 59; DiffS := @round(TDiff/60); DiffS := 0);
@If(TDiff > 59; DiffM := @round(TDiff - (DiffS * 60)); DiffM := TDiff);

@If(@Length(@Text(DiffM)) = 1; DiffM := "0"+ @Text(DiffM); DiffM := DiffM);
@If(@Length(@Text(DiffS)) = 1; DiffS := "0"+ @Text(DiffS); DiffS := DiffS);

@Text(DDiff) + " - "  + @Text(DiffS) + ":" + @Text(DiffM)
--- Ende Code ---

Ein Aktualisierungszeichen kann ich nirgends sehen, wie darf das denn aussehen?

Es handelt sich hier übrigens um eine Ansicht in einer anderen Datenbank (also nicht meine Mail-DB).

Gruß

Marcel

Mirko:
Hallo Marcel,

das Aktualisierungs-Symbol ist dieser lustige "Kringel" neben den Spaltenüberschriften.
Deine Formel ist irgendwie kompliziert :-[ Die habe ich jetzt nicht kontrolliert. Ich habe mal getestet:

--- Code: ---Diff:=@Now-@Created;
Tage:=@Integer((Diff) / (60 * 60 * 24));
Rest:=@Modulo(diff;(60 * 60 * 24));
Stunden:=@Integer(Rest/3600);
Minuten:=@Integer((@Modulo(Rest;3600)/60));
@Text(Tage) + "T;" +@Text(Stunden) + "St.;" + @Text(Minuten) + "min"
--- Ende Code ---
Diff ist die Gesamtdifferenz in Sekunden (Notes berechnet einen Wert in Sekunden, wenn man Zeiten subtrahiert). Rest enthält die überzähligen Sekunden, die dann in Stunden und Minuten umbgerechnet werden. Das funktioniert bei mir auch in einer Ansicht. Allerdings würde ich es trotzdem per Schaltfläche regeln wenn Du sowieso manuell aktualisieren willst.

Viele Grüße

Mirko

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln