Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: skywook am 01.09.04 - 16:21:53

Titel: Ansicht durchlaufen
Beitrag 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
Titel: Re:Ansicht durchlaufen
Beitrag von: Semeaphoros am 01.09.04 - 16:28:49
Zeichne mal Deine Logik mit einem Flowchart (oder in Pseudocode) auf und Du wist sofort sehen, wo Dein Denkfehler ist.
Titel: Re:Ansicht durchlaufen
Beitrag von: skywook am 01.09.04 - 16:30:56
wenn das Dokument gelöscht wird, fehlt die Verbindung. Aber wie beuge ich dem vor?
Titel: Re:Ansicht durchlaufen
Beitrag von: Semeaphoros am 01.09.04 - 16:32:46
Indem Du am Anfang des Loops in ein TempDoc das NextDoc setzest und am Ende des Loops das TempDoc ins Dokument reinsetzest
Titel: Re:Ansicht durchlaufen
Beitrag von: koehlerbv am 01.09.04 - 16:35:48
Oder
docKill = doc
doc = View.GetNextDocument (doc)
Call docKill.Remove (true)

Es gibt sicher noch mehr Spielarten.

Bernhard
Titel: Re:Ansicht durchlaufen
Beitrag von: skywook am 01.09.04 - 16:45:53
Sorry, aber das docKill = doc funktioniert nicht
Titel: Re:Ansicht durchlaufen
Beitrag von: Glombi am 01.09.04 - 16:52:30
Sorry, aber das docKill = doc funktioniert nicht
Ersetze doc durch Dokument, dann sollte es gehen. Nicht immer einfach alles gedankenlos abtippen  ;)

Andreas
Titel: Re:Ansicht durchlaufen
Beitrag von: Semeaphoros am 01.09.04 - 17:08:55
Vor allem brauchts noch ein Set davor

Set docKill = Dokument
Titel: Re:Ansicht durchlaufen
Beitrag von: koehlerbv am 01.09.04 - 17:16:42
Sei doch nicht so kleinlich, Jens  ;D
Titel: Re:Ansicht durchlaufen
Beitrag von: Semeaphoros am 01.09.04 - 17:25:15
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 ....."