Domino 9 und frühere Versionen > ND6: Entwicklung

Aus Vorlage erstellten Ordner öffnen

(1/3) > >>

Barbara:
Hallo zusammen,
ich beziehe mich auf folgenden Thread: http://atnotes.de/index.php/topic,33592.0.html

Will Ihn nicht wieder hochholen, da es nun um das weiterführende Problem geht.

Also,
- View, dessen Gestaltung verwendet werden soll, als Objekt holen
- über NotesView.UniversalID und NotesDatabase.GetDocumentByUNID den View als Dokument-Objekt holen
- Dokument mit notesDocument.CopyToDatabase kopieren
- entsprechende Felder in dem Dokument ändern und speichern

funktioniert. Ordner ist da, kann angesprochen und gefüllt werden. Jetzt möchte ich ihn auch im Frontend geöffnet haben, dabei laufe ich an die Wand.
Habe mit uidatabase.close und ws.opendatabase rumprobiert, bekomme immer die Meldung:
Ungültiges oder nicht vorhandenes Dokument - und zwar immer dann, wenn ich den Ordner öffnen will.

Wie schließt und öffnet man eine Datenbank richtig? Oder anders gefragt, wie erkläre ich der Datenbank, dass sie den Ordner sehr wohl besitzt?

Gruß

Barbara

Driri:
Wie versuchst Du denn, den Ordner zu öffnen ?

Barbara:
Hallo Ingo,
ich poste mal das ursprüngliche script.

If key<>"" Then
         'Ordner leeren , wenn nicht da  neu erstellen
      viewname="Kalender_" & key
      Set view=db.getView(viewname)
      If Not view Is Nothing Then
         Set vc = view.AllEntries
         Call vc.RemoveAllFromFolder(view.Name)
      Else
         ID=template.UniversalID
         Set viewdoc=db.GetDocumentByUNID(ID)
         Set newdoc= viewdoc.CopyToDatabase(db)
         Call newdoc.ReplaceItemValue("$Name",viewname)
         Call newdoc.ReplaceItemValue("$Title",viewname)
         Call newdoc.Save(True,True)
         Set view=db.getView(viewname)
      End If
      
   'Ordner neu befüllen
      Suche= { @contains(FirmaStandort;"} & key & {") & Ereignis != "3"}
      Set col=db.Search(Suche,Nothing,0)
      Call col.PutAllInFolder( view.name)
      
      
      Call ws.OpenFrameSet("Root")
      Call ws.settargetframe("RootMain")
      Call dbui.OpenView(viewname)
      Call ws.ViewRefresh
   End If

später habe ich dann vor und nach dem Rahmen setzten versucht mit dbui.close etc. die Datenbank zu schließen und wieder zu öffnen - da bin ich dann gescheitert. Habe dann irgendwann den Überblick verloren.

Ich hoffe auf den berühmten Schubs von Euch   :)

Gruß
Barbara

Driri:
Weil mir das irgendwie bekannt vorkam, habe ich mal in der KB gesucht :

Folders created using back-end LotusScript methods do not appear in database

Da scheinst Du mit leben zu müssen. Angeblich soll ein Reopen der Datenbank helfen.

Barbara:
genau, soweit war ich auch schon und hier liegt mein Problem:
wie geht das mit dem "Reopen"

hier meine Bemühungen, die in dem Fehler "Ansicht oder Navigator  "Name" existiert nicht" enden:

ID=template.UniversalID
         Set viewdoc=db.GetDocumentByUNID(ID)
         Set newdoc= viewdoc.CopyToDatabase(db)
         Call newdoc.ReplaceItemValue("$Name",viewname)
         Call newdoc.ReplaceItemValue("$Title",viewname)
         Call newdoc.Save(True,True)
         Call dbui.Close
         Set dbui=Nothing
         Set db=Nothing
         Set dbui=ws.CurrentDatabase
         Set db=dbui.Database
         Set view=db.getView(viewname)
         Call ws.OpenDatabase(db.Server, db.FilePath)
         Call ws.OpenFrameSet("Root")
         Call ws.settargetframe("RootMain")
         Call dbui.OpenView(viewname)

Im debugger sieht man alle Objekte, scheinbar alles ok.

Barbara

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln