Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: LordMacBee am 08.07.03 - 20:58:47
-
Hallo zusammen,
Ich versuche via script das Feld wo alle lokalen addressbücher drinnstehen zu füllen. (das liegt unter File/Preferences/UserPreferences auf dem Mail Tab)
Ich habe schon im Bookmarks nsf rumgesucht, aber finde die form nicht wo das Feld drinn sein könnte. (Falls es überhaupt im bookmarks.nsf liegt)
Frage an euch: Wie komme ich da ran? Kann ich das überhaupt setzen?
Dankeimvorausichweissjawieschnellihrantwortet ;D
Lord MacBee
-
Hi,
um die lokalen Adressbücher zu setzen, musst Du den NOTES.INI Eintrag "Names=" setzen.
Beispiel:
Dieses Script fügt die aktuelle Datenbank als lokales Adressbuch des Users hinzu:
Sub Click(Source As Button)
'Deklarationen
Dim session As NotesSession
Dim db As NotesDatabase
Dim ret As Integer
Dim names_string As String
Dim office_string As String
Dim office_server As String
Dim office_path As String
'Settings
Set session = New NotesSession
Set db = session.CurrentDatabase
'Hinweis an User
ret = Msgbox ("Die Datenbank " & db.Title & " wird zu Ihrer Adressbuchliste hinzugefügt. Möchten Sie fortfahren?",4+32,"Weiter?")
If ret = 7 Then Exit Sub
office_server = db.Server
office_path = db.FilePath
'Lese aktuellen Wert für NAMES aus der NOTES.INI
names_string = session.GetEnvironmentString("NAMES",True)
'Def. String für diese Datenbank - falls DB auf dem Server liegt, muss Server und Pfad durch !! getrennt werden
If office_server <> "" Then
office_string = office_server & "!!" & office_path
Else
office_string = office_path
End If
'Falls der Pfad der GIS Office bereits enthalten ist: Abbruch
If Instr(names_string,office_string) > 0 Then
Msgbox "Die GIS Office ist bereits in Ihrer Adressbuchliste eingetragen!",0+16,"Abbruch"
Exit Sub
End If
'Füge Office zum NOTES.INI Eintrag hinzu
Call session.SetEnvironmentVar("NAMES",names_string & ", " & office_string,True)
Msgbox "Die GIS Office wurde zu Ihrer Adressbuchliste hinzugefügt",0+64,"Hinweis"
End Sub
-
Dank dir Glombi,
Das funktionniert herrlich. Guck dir allerdings nochmals an, wie du dir den Pfad der db zusammenbastelst. Auf Lokal nimmt er den Pfad meiner Lokalen Kiste ( also C.\lotus\notes\data\address.nsf)
was natürlich als Eintrag in den Preferences keinen Sinn macht.
Aber jetzt tut das wie ich das will.
Lord Macbee
-
Hi,
man kann in den Benutzervorgaben auch den ganzen Pfad angeben. Das ist allerdings statisch und muss geändert werden, wenn das Notes-Datenverzeichnis verschoben wird.
Um nur den relativen Pfad anzugeben, könnte man folgendes machen:
... Code wie gehabt
Dim session As New NotesSession
Dim notesdatadir As String
dim pos as integer
notesdatadir = session.GetEnvironmentString( "Directory", True )
pos = Instr(db.FilePath, notesdatadir )
if pos > 0 then
office_path = strright(office_path ,notesdatadir)
end if
#######
Diese Formel gibt alles rechts vom Notes-Datenverzeichnis zurück, sofern die DB dort liegt (wird mit pos bestimmt).
Andreas
-
Genau,
das habe ich auch in dem Sinne so angepasst, weil er mir mit dem absolut die datenbank nicht gefressen hat im address dialog.
Ich würde sicherlich empfehlen, das ganze über das data dir zu lösen.
Danke nochmals für die Hilfe
LordMacbee