Domino 9 und frühere Versionen > ND8: Entwicklung
Symbolleisten kopieren
Patt74:
Hallo,
ich habe mir eine Symbolleiste erstellt mit eigenen Buttons (@commands...).
Werden die Symbolleisten irgendwo gespeichert, damit ich diese bei einem anderen Benutzer reinkopieren kann?
Es bestehen keinerlei Zugriffsrechte ala Admin, dies als Hinweis.
Ich kann natürlich bei jedem einzelnen die Symbolleiste und die dazugehörigen Buttons manuell anlegen, aber bei 5 Leuten kostet das ja ewig Zeit. :o
Danke.
Grüße
jBubbleBoy:
Die werden lokal in die Bookmark.nsf gespeichert (Gliederungen).
Hast du einen Designer?
Tode:
Die Symbolleisten liegen in der Bookmark.nsf, dort in einer Gliederung mit dem Namen "UserToolbar".
Problem: die bookmark.nsf liegt bei jedem lokal. Wenn Du das übertragen willst, dann musst Du die Toolbar an einer zentralen Stelle in einer Datenbank auf dem Server vorhalten und die Gliederungs- Einträge per Script kopieren.
Hier mal Code, wie das funktionier (Beispielcode, nicht vollständig, z.B. fehlen die errorhandler- funktionen, die verwendet werden)nur um zu zeigen, wie komplex das werden kann):
--- Code: ---Sub Initialize
On Error GoTo ErrorRoutine
'==================================================================================================================================
Dim dbLocal As NotesDatabase
Dim dbBookmark As NotesDatabase
'- Toolbar
Dim olSource As NotesOutline
Dim olentry As NotesOutlineEntry
Dim olentryChild As NotesOutlineEntry
Dim olBookmark As NotesOutline
Dim olentryBookmark As NotesOutlineEntry
Dim olentryBookmarkChild As NotesOutlineEntry
Dim olentryBookmarkChildNext As NotesOutlineEntry
Dim olentryReferenceBookmark As NotesOutlineEntry
Dim blnAddAsChild As Boolean
Dim strEntryName As String
Dim strToolbarname As String
Dim strTargetOutlineName As String
Dim blnFound As Boolean
Dim blnUpdate As Boolean
'- Get users bookmark
Set dbBookmark = New NotesDatabase( "" , "bookmark.nsf" )
'- Get Source outline
Set olSource = g_dbCurrent.Getoutline("NameDerToolbar")
'- Get the first root entry for the new outline
Set olentry = olSource.Getfirst()
strToolbarName = olentry.Label
strEntryName = olentry.Alias
strTargetOutlineName = "UserToolbar"
'- Get Bookmark outline
Set olBookmark = dbBookmark.Getoutline( strTargetOutlineName )
blnFound = False
blnUpdate = True
'- Find the toolbar in the target database and remove it
Set olentryBookmark = olBookmark.Getfirst()
While Not olentryBookmark Is Nothing And blnFound = False
If olentryBookmark.Label = strToolbarname Then '- toolbar found
blnFound = True
blnUpdate = True
'- Now remove the old toolbar to recreate it as copy
'- First: Run through all childs
Set olentryBookmarkChild = olBookmark.Getchild( olentryBookmark )
While Not olentryBookmarkChild Is Nothing
Set olEntryBookmarkChildNext = olBookmark.Getnextsibling( olentryBookmarkChild )
'- And remove them
Call olBookmark.Removeentry( olentryBookmarkChild )
Set olentryBookmarkChild = olEntryBookmarkChildNext
Wend
End If
If blnFound = True And blnUpdate = True Then
'- Now remove the root entry
Call olBookmark.Removeentry( olEntryBookmark )
Set olEntryBookmark = Nothing
Else
Set olentryBookmark = olBookmark.Getnextsibling( olentryBookmark )
End If
Wend
If blnUpdate = True Then
'- Save our changes
Call olBookmark.Save()
'- Now recreate the toolbar from scratch
Set olentryBookmark = olBookmark.Createentryfrom( olentry )
'- Now cycle through all child entries
Set olentryReferenceBookmark = olEntryBookmark
blnAddAsChild = True
Set olentryChild = olSource.Getchild(olentry)
While Not olentryChild Is Nothing
'- And copy them as a child document to the toolbar
Set olentryBookmarkChild = olBookmark.Createentryfrom( olentryChild, olentryReferenceBookmark, True, blnAddAsChild )
Set olentryReferenceBookmark = olentryBookmarkChild
blnAddAsChild = False
Set olentryChild = olSource.Getnextsibling(olentryChild)
Wend
Call olBookmark.Save()
End If
'===================================================================================================================================
EndOfRoutine:
Exit Sub
ErrorRoutine:
If ErrorHandler (GetThreadInfo (LSI_THREAD_PROC), GetThreadInfo (LSI_THREAD_CALLPROC)) = ERRORHANDLER_TOP_OF_STACK Then
Resume EndOfRoutine
End If
End Sub
--- Ende Code ---
Patt74:
--- Zitat von: jBubbleBoy am 13.02.17 - 15:05:25 ---Die werden lokal in die Bookmark.nsf gespeichert (Gliederungen).
Hast du einen Designer?
--- Ende Zitat ---
Ich bin nur einfacher Benutzer in einem großen Unternehmen, deswegen auch mein Hinweis von wegen Adminrechten.
Kann man denn die nsf Dateien als normaler User einsehen/bearbeiten?
Patt74:
--- Zitat von: Tode am 13.02.17 - 15:16:34 ---Die Symbolleisten liegen in der Bookmark.nsf, dort in einer Gliederung mit dem Namen "UserToolbar".
Problem: die bookmark.nsf liegt bei jedem lokal. Wenn Du das übertragen willst, dann musst Du die Toolbar an einer zentralen Stelle in einer Datenbank auf dem Server vorhalten und die Gliederungs- Einträge per Script kopieren.
Hier mal Code, wie das funktionier (Beispielcode, nicht vollständig, z.B. fehlen die errorhandler- funktionen, die verwendet werden)nur um zu zeigen, wie komplex das werden kann):
--- Ende Zitat ---
hier gilt dann entsprechend meiner o.g. Antwort. Kann ich solch Code überhaupt verwenden ohne Adminrechte? Falls ja wie?
Wobei das denke ich ohnehin eine Nummer zu groß für mich ist :-(
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln