Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: skywook am 01.09.04 - 16:21:53
-
Hallo,
das Script soll eine Ansicht durchlaufen und doppelte Dokumente löschen. Habe aber das Problem, dass die Schleife nur ein einziges mal durchläuft. Kann mir jemand einen Tipp geben.
Dim Server As String
Dim Filename As String
Dim z As String
Dim Datenbank As NotesDatabase
Dim Ansicht As NotesView
Dim Dokument As NotesDocument
Server = ""
Filename = "spar.nsf"
Set Datenbank = New NotesDatabase(server,Filename)
Set Ansicht = Datenbank.GetView("hkt")
Set Dokument = Ansicht.GetFirstDocument()
z = Cstr(Dokument.hkt(0))
Set Dokument = Ansicht.GetNextDocument(dokument)
Do Until Dokument Is Nothing
If z = Cstr(dokument.hkt(0)) Then
Call dokument.Remove( True )
Else
z = Cstr(Dokument.hkt(0))
Set Dokument = Ansicht.GetNextDocument(dokument)
End If
Loop
-
Zeichne mal Deine Logik mit einem Flowchart (oder in Pseudocode) auf und Du wist sofort sehen, wo Dein Denkfehler ist.
-
wenn das Dokument gelöscht wird, fehlt die Verbindung. Aber wie beuge ich dem vor?
-
Indem Du am Anfang des Loops in ein TempDoc das NextDoc setzest und am Ende des Loops das TempDoc ins Dokument reinsetzest
-
Oder
docKill = doc
doc = View.GetNextDocument (doc)
Call docKill.Remove (true)
Es gibt sicher noch mehr Spielarten.
Bernhard
-
Sorry, aber das docKill = doc funktioniert nicht
-
Sorry, aber das docKill = doc funktioniert nicht
Ersetze doc durch Dokument, dann sollte es gehen. Nicht immer einfach alles gedankenlos abtippen ;)
Andreas
-
Vor allem brauchts noch ein Set davor
Set docKill = Dokument
-
Sei doch nicht so kleinlich, Jens ;D
-
Ich nicht, aber der Compiler ...... :)
.... wobei ich ihm (dem Compiler) auch jedesmal sage: "Na, wenn Dus schon haben willst, warum setztest Dus dann nicht gleich selber hin ....."