Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: hhecht am 30.10.06 - 15:25:07

Titel: in vorschau geöffnetes dokument schließen
Beitrag von: hhecht am 30.10.06 - 15:25:07
Hi,

nochmal editiert um klarheit zu schaffen:

ich möchte ein in der Vorschau geöffnetes Dokument zunächst in der ansicht anhaken, danach auf meine schaltfläche "Archivierung rückgängig machen" klicken... daraufhin werden alle angehakten dokumente in eine andere datenbank kopiert und anschließend gelöscht

ohne die abfrage ob das dokument in der vorschau ist, kommt der fehler das das dokument nicht gelöscht werden kann weil es ja im frontend geöffnet ist: "cannot remove notesdocument when instantiated by notesuidocument"


folgender Codeauszug:

 Dim uiws As New NotesUIWorkspace
   Dim archivdb As NotesUIDatabase
   Dim uiview As NotesUIView
   Dim view As NotesView
   Dim viewUid As NotesView
   'Alle angehakten Dokumente
   Dim dc As NotesDocumentCollection
   'Ein angehaktes Dokument
   Dim doc As NotesDocument
   Dim killdoc As NotesDocument
   'aktuell geöffnetes Dokument
   Dim uidoc As NotesUIDocument
   Dim rueckgaengig As Boolean
   Dim angekommen As Boolean
   Dim vorgang As Boolean
   Dim antwortfrm As Boolean
   
   Set uiview = uiws.Currentview
   Set uidoc = uiws.CurrentDocument
   Set archivdb = uiws.CurrentDatabase
   Set dc = uiview.Documents
   Set view = uiview.View
   Set viewUid = postdb.GetView("posvwDocid")
   
   
   'Angehakte Dokumente
   If dc.Count = 0 Then
      Msgbox "Dokument muss angehakt sein", 48, "Achtung!"
      Exit Sub
   End If
   
   

   'aktuell in Vorschau geöffnetes Dokument schließen
   If Not uidoc Is Nothing Then
      If uidoc.InPreviewPane Then
         uidoc.Close(True)
      End If
   End If


'Aufruf eines Dialogs
   rueckgaengig = uiws.Prompt(PROMPT_YESNO, "Archivierung rückgängig machen", _
   "Wollen Sie die Archivierung der ausgewählten Dokumente rückgängig machen?")
   If rueckgaengig = True Then
      Set doc = dc.GetFirstDocument              <---------- da tritt der fehler auf
      Do While Not (doc Is Nothing)
         'Dokument ist Hauptdokument
         If doc.Form(0) = "posfrmPosteingang" Then
...
..
.


Fehler ist folgender... Object Variable Not Set

Debugger sagt das DC also die documentcollection leer ist, nachdem uidoc geschlossen wird. in DC stehen alle angehakten Dokumente...wo ist der Fehler??
Titel: Re: in vorschau geöffnetes dokument schließen
Beitrag von: LN4ever am 31.10.06 - 12:07:11
Ist vielleicht die gleiche Ansicht in der Maske des uidocs noch einmal als eingebettete Ansicht vorhanden ? Wenn ja, sorgt das uidoc.Close für den Aufruf des Destruktors - und damit hängt die uiview in der Luft - und die DocumentCollection muß leer sein.

Gruß

Norbert
Titel: Re: in vorschau geöffnetes dokument schließen
Beitrag von: hhecht am 31.10.06 - 12:54:59
in der maske des uidocs ist keine eingebettete ansicht vorhanden


ich möchte einfach nur das dokument in der vorschau schließen damit es rüberkopiert und anschließend gelöscht werden kann
Titel: Re: in vorschau geöffnetes dokument schließen
Beitrag von: Driri am 31.10.06 - 13:28:41
Ich vermute mal, daß durch das uidoc.Close da irgendwas schiefgeht. Hast Du schon mal probiert einfach mit Evaluate und @Command( [ShowHidePreviewPane] ; 0) die Vorschau zu schließen ?
Titel: Re: in vorschau geöffnetes dokument schließen
Beitrag von: hhecht am 31.10.06 - 13:46:37
http://atnotes.de/index.php?topic=28334.0

6. Beschränkungen

Die Evaluate-Anweisung kann nur mit Formelfunktionen, die keine Benutzerschnittstelle besitzen, verwendet werden.   
Formelbefehle, die mit @Command bzw. @PostedCommand aufgerufen werden, sind ebenfalls nicht zulässig.


@Command (and @PostedCommands)
@DDEInitiate
@DDETerminate
@DDEExecute
@DDEPoke
@Prompt
@DialogBox
@PickList 




wenn ichs versuche mit evaluate kommt leider "Operation failed" s.o.
Titel: Re: in vorschau geöffnetes dokument schließen
Beitrag von: Driri am 31.10.06 - 15:06:09
Mist, sorry, da hab ich geschlafen  :-[

Ist in der DocumentCollection denn vor dem uidoc.Close mehr als 1 Dokument drin ?

Was passiert denn, wenn Du die DocumentCollection erst später bildest, also nach dem Close ?