Autor Thema: Symbolleisten kopieren  (Gelesen 3755 mal)

Offline Patt74

  • Frischling
  • *
  • Beiträge: 12
Symbolleisten kopieren
« am: 13.02.17 - 14:32:51 »
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

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: Symbolleisten kopieren
« Antwort #1 am: 13.02.17 - 15:05:25 »
Die werden lokal in die Bookmark.nsf gespeichert (Gliederungen).
Hast du einen Designer?
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.873
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Symbolleisten kopieren
« Antwort #2 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):

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
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Patt74

  • Frischling
  • *
  • Beiträge: 12
Re: Symbolleisten kopieren
« Antwort #3 am: 13.02.17 - 17:19:10 »
Die werden lokal in die Bookmark.nsf gespeichert (Gliederungen).
Hast du einen Designer?

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?

Offline Patt74

  • Frischling
  • *
  • Beiträge: 12
Re: Symbolleisten kopieren
« Antwort #4 am: 13.02.17 - 17:21:02 »
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):


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 :-(

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: Symbolleisten kopieren
« Antwort #5 am: 13.02.17 - 18:00:05 »
Darum die Frage nach einem Notes Designer, damit wäre eine Verteilung über die Schablone "bookmark.ntf" schnell umgesetzt, aber so ... frag mal deinen Admin, ob er das für dich machen kann ;)
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz