Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 13.12.02 - 12:33:53
-
Hallo Leute,
in einer Schleife werden alle angewählten Dokumente durchlaufen,
leider bekomme ich nach dem letzten Dokument ein
Variant does not contain an object.
Mir ist zwar klar, das das am dc.GetNextDocument(doc)
liegt, aber wie mache ich es besser ?
Kann mir jemand helfen ?
Ciao und vielen Dank
Don Pasquale
Dim flag As Variant
Dim Session As New NotesSession
Dim Collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim view As NotesView
Set db=session.currentdatabase
Set Collection=db.UnprocessedDocuments
Set doc=Collection.GetFirstDocument
Dim nnUserName As New NotesName(session.UserName)
Dim tmpdoc As NotesDocument
Set view = Session.Currentdatabase.GetView( "InternIdent" )
Set doc = Collection.getfirstdocument
If Collection.Count = 0 Then
Messagebox "Es ist kein Dokument markiert "
Else
If Collection.Count > 1 Then
Messagebox "Sie dürfen nur ein einzelnes Dokument löschen"
Else
flag = Messagebox ("Wenn Sie diese Abfage mt OK bestätigen wird, das Dokument gelöscht. Es kann danach nur noch vom Administrator wiederhergestellt werden. Wollen Sie wirklich löschen ?", MB_OKCANCEL+ MB_EXCLAMATION,1)
If flag Then
While Not (doc Is Nothing)
Set item = doc.ReplaceItemValue( "e4fld_Geloescht","True" )
Set item = doc.ReplaceItemValue( "e4fld_GeloeschtAm", Today )
Set item = doc.ReplaceItemValue( "e4fld_GeloeschtVon", nnUserName.Common )
Call doc.Save( True, True )
Call doc.RemoveFromFolder("Eigene Dokumente")
Set doc = dc.GetNextDocument(doc)
Wend
End If
End If
End If
-
Hi,
vom Prinzip her ist die Schleife in Ordnung, aber du hast einen Schreibfehler drin.
Muß so aussehen:
Set doc = Collection.GetNextDocument(doc)
Dann solte es funktionieren.
Axel
-
wenn er das Doc aus dem Folder removed, wird dann nicht das Netxdocument gegen die Wand laufen, weil dann nämlich das nächste Doc so nicht mehr in dem Ordner existiert, da es um "eins hochgerutscht" ist?
-
@rob
stimmt genau - man sollte nie den Ast absägen auf dem man arbeitet :D :D :D :D
cu
-
Eben, deshalb:
...
set docLoop=doc
set doc=col.getnextdocument(doc)
'machwas, aber mit docLoop
...
-
@Rob,
glaube ich nicht, denn doc bezieht sich auf Dokumente innerhalb der Collection und nicht des Ordners.
Um ganz sicher zu gehen, könnte man es so versuchen:
...
Call doc.Save( True, True )
Set doc = Collection.GetNextDocument(doc)
Call doc.RemoveFromFolder("Eigene Dokumente")
Wend
...
Axel
-
Set doc = Collection.GetNextDocument(doc)
Dann solte es funktionieren.
Das tut es.
Herzlichen Dank
ich war schon schwer am grübeln
;D ;D
Ciao
Don Pasquale
@ROB: Das war auch mein Gedanke, war mir aber nicht sicher.
Aber anscheindend tut es jetzt.