Autor Thema: Probleme beim Vergleich von Datumswerten  (Gelesen 3839 mal)

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Probleme beim Vergleich von Datumswerten
« am: 02.08.06 - 18:48:22 »
Hallo,

ich habe ein ganz merkwürdiges Phänomen. Ich hole mit aus zwei Feldern die Datumswerte und vergleich, welches größer ist.

Ich hole mir die Feldwerte in ein NotesDateTime Objekt und habe bereits probiert die Daten direkt mit .LSLocalTime, aber auch mit .TimerDifference zu vergleichen. Der gesamte Scriptcode steckt in einem Agenten, der aus einer Ansicht aufgerufen wird.

Wenn ich ihn normal laufen lasse, funktioniert das ganze überhaupt nicht, wenn ich debugge funktioniert's. Ich verstehe nicht warum. Hat jemand eine Idee?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Probleme beim Vergleich von Datumswerten
« Antwort #1 am: 02.08.06 - 19:10:30 »
Ohne Code lässt hierzu nur gaaaaanz schlecht etwas sagen.

Nur: Warum machst Du es Dir bei einem solchen Vergleich eientlich so kompliziert? Datumswerte sind eigentlich (!) nichts anderes als Zahlen in der internen Behandlung (Datumsseriennummern).

Wenn Du wissen möchtest, welcher Wert grösser ist, dann reicht folgendes LS-Konstrukt vollkommen:

If NotesDocument.EndDateTime (0) >= NotesDocument.StartDateTime (0) Then
   Messagebox "Der Endzeitpunkt ist grösser oder gleich dem Startzeitpunkt"
Else
   Messagebox "Der Endzeitpunkt ist kleiner dem Startzeitpunkt"
EndIf

Das Ganze lässt sich natürlich noch beliebig verfeinern ;-)

Haarig wird es erst dann, wenn Du Datums-/Zeitwerte aus unterschiedlichen Zeitzonen vergleichst - dann kommst Du um die NotesDateTime Class nicht herum.

HTH,
Bernhard

PS: Vor dem Dealen mit Datums-/Zeitwerten nicht vergessen zu prüfen, ob dies auch wirklich solche sind: IsDate ...

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Probleme beim Vergleich von Datumswerten
« Antwort #2 am: 03.08.06 - 08:14:27 »
Den Code habe ich absichtlich nicht mit gepostet, weil der durch meine Versuche mittlerweilen nicht mehr so schön ist. Ich räume nochmal auf und probiere die direkte Technik. Aber ganz allgemein sind keine Probleme bekannt beim vergleich von Datumswerte? Manchmal gibt es ja die dollsten Dinger in Notes...

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Probleme beim Vergleich von Datumswerten
« Antwort #3 am: 03.08.06 - 08:57:41 »
Leider funktioniert es nicht. :(

Hier mal ein Ausschnitt:

dim ndtstart as Variant
dim ndttmpstart as Variant
dim ndtEnd as Variant
dim ndttmpStop as Variant

...

ndtStart = doc.getItemValue("StartDatum")(0)
.
.
.

      If ndtstart <= ndttmpstart Then
         If ndtEnd >= ndttmpstop Then
            Print "Ich tu was..."
            

            ' ... in ein neues Backend-Dokument wird ein RT-Feld gefüllt...
         End If
      End If




Die Datumsfelder haben z.B. folgende Inhalte:

ndtstart: 03.08.2005
ndtend:  03.08.2006

ndttmpstart: 04.05.2006 14:30:59
ndttmpstop: 07.06.2006 14:45:08



Bin ich zu doof? Übersehe ich da was? Habe ich einen logischen Fehler gemacht? Wie gesagt, wenn ich Debugge, läuft der Debugger in den "Tu was"-Teil, ohne Debugge überspringt er den gesamten Bereich.

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Probleme beim Vergleich von Datumswerten
« Antwort #4 am: 03.08.06 - 09:13:32 »
Hi.

Schau Dir nochmal das Beispiel von Bernhard an und denk an die Überprüfung auf IsDate.

André
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Probleme beim Vergleich von Datumswerten
« Antwort #5 am: 03.08.06 - 09:31:16 »
Es handelt sich dabei um Datumswerte. Ich habe die isDate Abfrage im Beispiel weggelassen um es zu vereinfachen. Meine Testdokumente besitzen auch wirklich Datumswerte. Notes macht aber nicht was ich will. :(

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Probleme beim Vergleich von Datumswerten
« Antwort #6 am: 03.08.06 - 09:43:12 »
Notes macht aber nicht was ich will. :(

Nein - Du tust nicht, was Notes von Dir erwartet.
Datumsvergleiche sind absoluter Standard in Notes, es sind dabei keine Schwierigkeiten zu erwarten. Man muss es nur richtig machen. Und irgendwo machst Du eben einen Fehler, der sich mir aus der Ferne aber noch nicht erschliesst.

Bernhard

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Probleme beim Vergleich von Datumswerten
« Antwort #7 am: 03.08.06 - 09:47:08 »
Wie ist es zu erklären, dass es beim Debuggen funktioniert, aber ohne Debugger nicht?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Probleme beim Vergleich von Datumswerten
« Antwort #8 am: 03.08.06 - 09:55:55 »
Wir können ohne weitere Infos nicht beurteilen, was das bedeutet, dass es "mit dem Debugger klappt". Du musst irgendwo einen Denkfehler in Deinem Code haben. Dass ein Datumsvergleich nicht klappt, der korrekt durchgeführt wird, ist genauso unwahrscheinlich, als dass Messagebox "Notes" zur Ausgabe von "Outlook" führt.

Bernhard

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: Probleme beim Vergleich von Datumswerten
« Antwort #9 am: 03.08.06 - 10:07:05 »
Was bedeutet "funktioniert das ganze überhaupt nicht"? Was passiert genau, in welcher Zeile?
Hast du eine Fehlerbehandlung eingebaut, die auftretende Fehler in einem z.B. AgentLog aufzeichnet (http://www-128.ibm.com/developerworks/lotus/library/ls-Troubleshooting_agents_ND5_6/#N101C4)?
« Letzte Änderung: 03.08.06 - 10:09:47 von Thomas Völk »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Probleme beim Vergleich von Datumswerten
« Antwort #10 am: 03.08.06 - 10:47:31 »
Es handelt sich dabei um keinen periodischen Agenten. Er wird einfach nur lokal vom User ausgeführt.

Wenn ich Debugge, wird der Datumsvergleich korrekt ausgeführt und das Print wird ausgegeben.

Wenn ich ihn normal laufen lasse, wird der Datumsvergleich nicht korrekt ausgeführt und das Print übersprungen.

Ich habe vorweg die Variablenwerte ausgeben lassen. Laut den Werten müßte der If-Block ausgeführt werden, das passiert aber leider nicht.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Probleme beim Vergleich von Datumswerten
« Antwort #11 am: 08.08.06 - 19:25:25 »
Also nochmal: Datumsvergleiche mit LotusScript funktionieren sehr zuverlässig, insofern man keine Fehler macht.
Das mit dem Item-Types können wir bei Dir offensichtlich ausschliessen (es sind ganz sicher Datums-/Zeit-Werte und keine Strings? Okay, sonst würdest Du ja auch ein type mismatch bekommen). Kann es sein, dass unter den Feldern gar keine Items sind, sondern Felder "computed for display"?
Wo steht der Code? In einem Agent? Wenn ja: Was für ein Agent? Greift dieser auf das Back- oder Frontend zu (bisher sehe ich nur Backend).

Auf jeden Fall: Du machst da irgendeinen Fehler. Ohne genaue Kenntnis Deines Codes ist das - auch das wurde schon gesagt - schwer nachzuvollziehen. Lösbar ist Dein Problem aber auf jeden Fall (ist ja ein simples).

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz