Domino 9 und frühere Versionen > ND7: Entwicklung

gewünschte Ansicht wird nicht geöffnet

(1/3) > >>

Hatschi:
Hallo,

mein Script funktioniert nicht wie gewünscht.
Ich habe ein Doklink in einem Dokument. Das verlinkte Dokument möchte ich aber nicht öffnen, sondern eine bestimmte Ansicht. Dabei soll der Cursor aber auf das verlinkte Dokument positioniert werden.

Bei mir wird aber immer nur die Vorgabeansicht geöffnet, und nicht die von mir gewünschte Ansicht. Ich habe schon versucht die Ansicht über ihren Namen zu öffnen, als auch über den Alias. Beides funktioniert nicht.
Beide Versuche mit OpenDatabase und OpenView öffnen nur die Vorgabeview.

Hat jemand eine Idee wie ich im Frontend die View wechsel und auf das verlinkte Dokument positioniere?

Hier noch mein Script. Vielen Dank für Anregungen.


Sub Initialize
   'Datenbank im Doklink öffnen, und View positionieren
   Dim DbHier As NotesDatabase
   Dim DocHier As NotesDocument
   Dim RtItemHier As notesrichtextitem
   Dim NaviHier As notesrichtextnavigator
   Dim DoklinkHier As Variant
   
   Dim uiws As notesuiworkspace
   Dim uidb As NotesUIDatabase
   Dim uiview As notesuiview
   Dim uidoc As notesuidocument
   
   Dim db As notesdatabase   
   Dim doc As NotesDocument
   
   'offenes Dokument holen   
   Set uiws = New NotesUIWorkspace
   Set uidoc = uiws.CurrentDocument
   Set DocHier = uidoc.Document
   
   'Doklink holen
   Set RtItemHier=DocHier.GetFirstItem("Notes_Link")
   Set NaviHier=RtitemHier.createnavigator   
   If NaviHier.FindFirstElement(RTELEM_TYPE_DOCLINK)   Then
      Set DoklinkHier = NaviHier.GetElement

      'verlinkte Datenbank holen
      Set db = New notesdatabase ("","")
      Call db.OpenByReplicaID(DokLinkHier.serverhint, DokLinkHier.DBReplicaID )

      'verlinktes Dokument holen
      Set Doc=db.GetDocumentByUNID(DoklinkHier.docunid)

      'verlinkte Datenbank im Frontend öffnen      
      Call uiws.OpenDatabase(db.Server, db.FilePath, "SortiertA1")
      Print "DB geöffnet. Aktuelle View: " + uiws.CurrentView.View.Name 'Ist leider die Vorgabeview

      'weil die gewünschte View nicht geöffnet wird ein weiterer Versuch
      Set uidb=uiws.CurrentDatabase
      Print uidb.Database.FilePath 'es ist wie gewünscht die verlinkte Datenbank
      Call uidb.OpenView("SortiertA1")
      Print "View gewechselt auf " + uiws.CurrentView.View.Name 'leider immer noch die Vorgabeview

      'positionieren auf das verlinkte Dokument
      Set uiview=uiws.CurrentView
      Call uiview.SelectDocument(doc) 'es wird auch nicht auf das gewünschte Dokument positioniert
   End If
End Sub

ascabg:
Hallo,

Nur mal so ein Frage.

Durch was fuer eine Aktion loest Du denn Dein Script aus?

Wenn Der User nur auf den Dok-Link klickt dann wird Dein Script doch nicht ausgefuehrt und Notes mach genau das was in einem solchen Fall immer passiert.
Dok-Link = oeffne das verlinkte Dokument.


Andreas

Hatschi:
Hallo Andreas,

das ist ein Agent, der von dem geöffneten Dokument (das mit dem Doklink), als Aktion gestartet wird.

Bernd

pete_bla:
Hi Andreas,

der call 'Notesuiworkspace.OpenDatabase:

--- Zitat von: Hatschi am 23.07.09 - 10:56:31 ---      Call uiws.OpenDatabase(db.Server, db.FilePath, "SortiertA1")
      Print "DB geöffnet. Aktuelle View: " + uiws.CurrentView.View.Name 'Ist leider die Vorgabeview

--- Ende Zitat ---
ist etwas 'Fatal' in Lotus Notes, kommentier das mal aus!

Hintergrund:
Ich habs bissher auch noch nie geschafft, damit das UI-Database Objekt im Script zurückzubekommen,
noch schlimmer, er verweigert dir auch noch weitere funkionen auf die UIDatabase, die du öffnen wolltest.

Und das geht auch oft nicht, wie gewünscht,

--- Zitat von: Hatschi am 23.07.09 - 10:56:31 ---      Set uiview=uiws.CurrentView
      Call uiview.SelectDocument(doc) 'es wird auch nicht auf das gewünschte Dokument positioniert

--- Ende Zitat ---
da damit nur eine Markierung, nicht aber deine "Auswahbox" (wie du es möchtest) in der  UI des NotesClient gesetzt wird.


Deine Variante geht dann eigentlich nur über den NotesUIView die NotesUIDatabase, bei der du als 'Select' noch anhand der ersten sortierten Spalte das Dokument 'Suchen' must.
(bereits im Call NotesUIWorkspace.OpenView(....) -> schau in der help)
Call notesUIWorkspace.OpenDatabase( server$, file$, view$, key$, newInstance, temp )

Gruss, Pete(r)

Nachtrag, Korrektur: 23.7.09
hab das object NotesUIDatabase mit 'view$' und 'key$' gemeint, aber leider NotesUIView geschrieben, - man wird eben nicht jünger...

ascabg:
Hi Pete(r),

Nicht mein Problem sonder das von Bernd (Hatschi).

Und eine Auswahlbox moechte Bernd glaube ich auch nicht, sonder er moechte "nur" die entsrprechende View oeffnen und den "Markierungsbalken" auf das betreffende Dokument setzen.


Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln