Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Selin am 15.08.02 - 12:32:26
-
Hallo,
ich habe mal eine Frage zu @Created.
Wenn ich in einer Maske kein Feld habe, wo @Created hinterlegt ist, kann ich trotzdem bei einer Ansicht abfragen, zeige mir alle Dokumente, die nicht älter als 10 Tage sind??
Wenn ja würde de Formel dann so stimmen?
@Adjust(@Created;0;0;10;0;0;)
-
älter zu was? Du möchtest doch etwas mit etwas anderem vergleichen. So setzt Du einfach nur das Datum um +10 Tage hoch und fertig, das passt aber nicht ganz.
und btw, created spuckt einen kompletten Zeitwert aus, so daß ein gleichtägiger Vergleich zu einem Fehler führen würde, wenn man created mit now-10 vergleicht.
(also zB: 18.08.2002 18:59 (@now) ist zwar größer als @created+10 = 08.08.2002 17:59, aber immer noch gleichtägig!, also letzten Endes falsch zu dem was Du möchtest)
Daher:
1. @date um @created und @now herum
2. setze @created um 10 Tage hoch oder @now 10 Tage runter
Problem:
die Ansicht ist wegen @now ein Performancefresser. Auch mit @today etc wäre es so.
Besser (Anm. von mir: "besser" als @now) =
ein alter Tip, in dem Falle zitiere ich mal Walter L vomSpotlight.de:
Today1 := @TextToTime("Heute");
Today2 := @TextToTime("Today");
Today3 := @TextToTime("Aujourd\'hui");
Today := @If(Today1 > [01.01.1900];Today1;Today2 > [01.01.1900];Today2;Today3);
Dies funktioniert in einer Umgebung mit deutschen, englischen und französischen Servern/Clients. Wenn alle beteiligten Server und Clients garantiert dieselbe Sprachversion haben, reicht auch ein Einzeiler mit @TextToTime.
-
dann könnte
@adjust(@date(@created(@today;0;0;-10;0;0))) funktionieren?
somit zähle ich @today 10 tage runter und sage, zeige alle docs die nicht älter sind als 10 Tage, oder??
-
Select @date(@adjust(@created;0;0;10;0;0)) >= @today
oder
Select @date(@adjust(@created;0;0;10;0;0)) >= @date(@now)
oder
Select @date(@created) >= @date(@adjust(@now;0;0;-10;0;0))
oder
Select @date(@adjust(@created;0;0;10;0;0)) >= @date(@TextToTime("Heute"));
-
super danke dir
-
@All
seit bitte vorsichtig im Umgang mit solchen Viewauswahlformeln :
Select @date(@adjust(@created;0;0;10;0;0)) >= @date(@now)
oder
Select @date(@created) >= @date(@adjust(@now;0;0;-10;0;0))
Denkt immer daran, dass der Indexer regelmässig über alle Views läuft und diese neu aufbaut, bei einem @Now macht der das ständig !!
Meff ;)
P.S. Vielleicht schaut Ihr euch zu dem Thema auch mal diesen Link an :
http://www.atnotes.de/cgi-bin/yabb/YaBB.pl?board=R5TIP;action=display;num=1029227573
-
guter Hinweis, nochmals darauf Wert zu legen.
Ich kann daher nur wärmstens den "Trick" mit texttotime(heute) empfehlen. Andere Möglichkeiten wären zwar mit now zu arbeiten und dafür den Ansichtsindex auf einen anderen Zeitraum einzustellen (zB bei einer wenig frequentierten DB auf alle 4 Stunden zu legen) bzw den Index komplett manuell zu setzen, was aber in beiden Fällen nicht unbedingt Userfriendly ist, da die selbst erzogen werden müssen, doch mal F9 zu drüken, um auch wirklich alle neuesten/geänderten Docs im View zu sehen.