Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: tabama am 18.05.06 - 17:57:54

Titel: Schleife mit (not doc is nothing) + weitere Bedingung
Beitrag von: tabama am 18.05.06 - 17:57:54
Hallo,
habe folgende Schleife.

set doc = ....
while not doc is nothing
   mache irgendwas
   set doc = view.getnextdocument(doc)
wend

Ich möchte aber die Schleife nicht nur beenden wenn kein Dokument mehr da ist, sondern auch, wenn eine andere Bedingung zutrifft. zB.

while (not doc is nothing) and doc.xxx(0) > 5

hier beachtet die schleife zwar die and-Bedingung, nicht aber das "not doc is nothing"
komme ich an das letzte Dokument, bringt er mir einen Fehler, weil das getnextdocument kein nächstes findet.

wie gehts?
Titel: Re: Schleife mit (not doc is nothing) + weitere Bedingung
Beitrag von: smoki am 18.05.06 - 18:08:07
Hallo!

Ich glaube du bekommst deshalb den Fehler, weil in der Script Sprache etwas anders gearbeitet wird als bspw. unter C und Java!

Die Bedingung wird immer komplett ausgeführt:

d.h. wenn doc is nothing, wird:

(not doc is nothing)      = false
doc.xxx(0) > 5              = error (da doc nothing ist)

Kann das bei dir der Grund sein!

Bei C/Java würde es gehen, da das erste false, die Ausführung vom Rest der bedingung verhindert (da AND verkünpfung). (Dort kann man daher auch viel "schönes" Unfug treiben!)

Konsequenz ist leider, dass du den Abbruch nach der Schleifen-Bedingung durchführen solltest.  :/

Vielleicht kannst du ja damit leben:

do until doc is nothing
       id doc.xxx(0) > 5 then exit do
       ....
loop

Viel Erfolg!

Gruss
Chris
Titel: Re: Schleife mit (not doc is nothing) + weitere Bedingung
Beitrag von: tabama am 19.05.06 - 09:08:13
Danke,

so funktioniert es