Autor Thema: Schlechte Schleifenkonstruktion  (Gelesen 1686 mal)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Schlechte Schleifenkonstruktion
« 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

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Schlechte Schleifenkonstruktion
« Antwort #1 am: 13.12.02 - 12:58:44 »
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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Schlechte Schleifenkonstruktion
« Antwort #2 am: 13.12.02 - 13:01:59 »
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?
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Schlechte Schleifenkonstruktion
« Antwort #3 am: 13.12.02 - 13:09:04 »
@rob
stimmt genau - man sollte nie den Ast absägen auf dem man arbeitet  :D :D :D :D

cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:Schlechte Schleifenkonstruktion
« Antwort #4 am: 13.12.02 - 13:14:23 »
Eben, deshalb:

...
set docLoop=doc
set doc=col.getnextdocument(doc)
'machwas, aber mit docLoop
...
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Schlechte Schleifenkonstruktion
« Antwort #5 am: 13.12.02 - 13:15:41 »
@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

         

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Schlechte Schleifenkonstruktion
« Antwort #6 am: 13.12.02 - 13:16:35 »
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.
« Letzte Änderung: 16.12.02 - 09:36:04 von Don Pasquale »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz