Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: schurke am 11.12.03 - 10:37:35
-
Hallo @ all,
ich benötige Hilfe in puncto LotusScript. Ich möchte eine Schaltfläche "In Kalender eintragen" erstellen, die einen Kalendereintrag vornimmt.
Folgendes Script habe ich entwickelt. Komme aber jetzt nicht weiter da meine Kenntnisse noch sehr begrenzt sind. Das Problem besteht darin, dass für jeden einzelnen User in der Mail-DB ein Unterverzeichnis angelegt ist. Wie kann ich jeden User im Unterverzeichnis ansprechen?
Es existiert ein Autorenfeld (wo der Username erscheint) das man dafür verwenden kann.
Mit "mail\myname.nsf" funzt die Schaltfäche schon.
Sub Click(Source As Button)
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim uidb As NotesUIDatabase
Dim kuidoc As NotesUIDocument
Dim uidoc As NotesUIDocument
Dim doc As notesdocument
Dim sitem As NotesItem
Dim eitem As NotesItem
Set db = s.currentdatabase
Set uidoc = ws.CurrentDocument
Set kuidoc = ws.ComposeDocument( "Server", "mail\myname.nsf", "_Calendar Entry")
Cat$= uidoc.FieldGetText( "Categories")
If kuidoc.EditMode = True Then
Call kuidoc.FieldSetText("AppointmentType", "2")
Call kuidoc.Refresh
Call kuidoc.FieldSetText("Subject", Cat$)
'Call kuidoc.Save()
End If
End Sub
Gruss
Wilfried
-
Hallo,
ich verstehe Dein Problem nicht. Geht es darum jetzt die einzelne Dateien auszuwählen?
Gruß
-
ich verstehe Dein Problem nicht. Geht es darum jetzt die einzelne Dateien auszuwählen?
Nein, ich möchte, das jeder seinen persönlichen Kalender damit pflegen kann.
wilfried
-
... was genau ist dein Problem, was klappt nicht?
Bitte doch den Moderator dieses Bereiches deinen Thread zu den Entwicklern zu verschieben, dort bekommst du eher Hilfe - hier ist das mehr für Admin's...
ata
-
Du sagst nein, und dann doch wieder ja. Der persönliche Kalender steckt ja schliesslich in der eigenen Maildatenbank, sprich das Auswählen des persönlichen Kalenders ist schliesslich die Frage danach, wie finde ich die eigene Mail-Datenbank. Schau Dir mal das Notes-Objekt "NotesDatabase" genau an, dort steht das nämlich drin, wie man da dran kommt.
Weiter: Kalender-Dokumente sind ziemlich komplex. Mit den von Dir vorgegebenen Daten ist es ziemlich wahrscheinlich, dass Du mit den erzeugten Dokumenten früher oder später Probleme bekommst. Leider ist das Gebiet Kalender nur sehr schlecht dokumentiert.
-
Wenn ich das richtig interpretiere, willst Du anstelle von "mail\myname.nsf" in
Set kuidoc = ws.ComposeDocument( "Server", "mail\myname.nsf", "_Calendar Entry")
den Pfad der Maildatenbank des aktuellen Users angeben?
Falls ja, kannst Du den aus der Notes.ini lesen: MailFile=<PFAD>
also
Sub Click(Source As Button)
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim uidb As NotesUIDatabase
Dim kuidoc As NotesUIDocument
Dim uidoc As NotesUIDocument
Dim doc As notesdocument
Dim sitem As NotesItem
Dim eitem As NotesItem
Dim mailpath As String
mailpath = s.GetEnvironmentString( "MailFile", True )
Set db = s.currentdatabase
Set uidoc = ws.CurrentDocument
Set kuidoc = ws.ComposeDocument( "Server", mailpath, "_Calendar Entry")
Cat$= uidoc.FieldGetText( "Categories")
If kuidoc.EditMode = True Then
Call kuidoc.FieldSetText("AppointmentType", "2")
Call kuidoc.Refresh
Call kuidoc.FieldSetText("Subject", Cat$)
'Call kuidoc.Save()
End If
End Sub
Andreas
-
Sorry, das erzeugt Fehlermeldung: Serverfehler: Datei nicht vorhanden. Unable to find Document Window
Wilfried
-
Hast Du denn den richtigen Server eingegeben?
Am besten den auch noch aus der Notes.ini lesen - MailServer
Das kannst Du analog zu MailFile machen.
Andreas
-
Hi,
versuch's doch mal so:
Sub Click(Source As Button)
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim maildb As NotesDatabase
Dim uidb As NotesUIDatabase
Dim kuidoc As NotesUIDocument
Dim uidoc As NotesUIDocument
Dim doc As notesdocument
Dim sitem As NotesItem
Dim eitem As NotesItem
Set maildb = New NotesDatabase("","")
maildb.OpenMail
Set db = s.currentdatabase
Set uidoc = ws.CurrentDocument
Set kuidoc = ws.ComposeDocument( maildb.Server, maildb.FilePath, "_Calendar Entry")
Cat$= uidoc.FieldGetText( "Categories")
If kuidoc.EditMode = True Then
Call kuidoc.FieldSetText("AppointmentType", "2")
Call kuidoc.Refresh
Call kuidoc.FieldSetText("Subject", Cat$)
'Call kuidoc.Save()
End If
End Sub
Axel
-
Herzlichen Dank @ all, insbesondere an Axel, der schließlich mein Problem lösen konnte.
Wilfried