Domino 9 und frühere Versionen > Entwicklung

Ansicht durchlaufen

(1/2) > >>

skywook:
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

Semeaphoros:
Zeichne mal Deine Logik mit einem Flowchart (oder in Pseudocode) auf und Du wist sofort sehen, wo Dein Denkfehler ist.

skywook:
wenn das Dokument gelöscht wird, fehlt die Verbindung. Aber wie beuge ich dem vor?

Semeaphoros:
Indem Du am Anfang des Loops in ein TempDoc das NextDoc setzest und am Ende des Loops das TempDoc ins Dokument reinsetzest

koehlerbv:
Oder
docKill = doc
doc = View.GetNextDocument (doc)
Call docKill.Remove (true)

Es gibt sicher noch mehr Spielarten.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln