Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Selin am 11.07.02 - 13:32:38
-
...eine eigene Maske
Hallo,
ich habe eine Maske, in die ich Aufgaben reinschreibe. Es existieren unter anderem ein Datums und Uhrzeit Feld.
Wie kann ich jetzt Einträge in die Maske machen und parallel dazu diesn Eintrag in den Notes KLender schreiben lassen?????
Danke
-
Hi,
so was ähnliches habe ich mal per Agent gemacht.
Sub Initialize
Dim maildb As NotesDatabase
Dim taskdoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set maildb = New NotesDatabase("","")
Call maildb.OpenMail
If Not maildb.IsOpen Then
Messagebox "Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es wird keine Aufgabe erstellt.", 16, "Adressen"
Exit Sub
End If 'If Not maildb.IsOpen Then
'Neue Aufgabe erstellen
Set taskdoc = New NotesDocument(maildb)
taskdoc.Form = "Task"
Call taskdoc.ComputeWithForm(True, True)
' Hier können weitere Felder bearbeitet werden
'Anlegen und füllen des Richtextfeldes für die Aufgabenbeschreibung
Set rtitem = taskdoc.CreateRichTextItem("Body" )
Call rtitem.AppendText("Hier steht die Aufgaben-Beschreibung")
Call taskdoc.Save(True,False)
End Sub
Schau die am besten die Task - Maske mit dem Designer an, damit du weißt wie die Felder heißen. Der Rest ist eigentlich nur Fleißarbeit.
Axel
-
Hmm, also da komm ich jetzt nicht weiter
wie soll ich das denn jetzt machen??
Ich habe eine Maske. Dort werde die Einträge gemacht und anschließend gespeichert. Wie stell ich das denn in verbindung mit dem Agenten??
Dass er mir die Datensätz in den Kalender schreiben soll??
-
Hi,
du braucht nicht unbedingt einen Agenten, du kannst den Code auch in einen Aktionsbutton einfügen.
Sub Click
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc AS NotesDocument
Dim maildb As NotesDatabase
Dim taskdoc As NotesDocument
Dim rtitem As NotesRichTextItem
'Zugriff auf das aktuelle Dokument
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set maildb = New NotesDatabase("","")
Call maildb.OpenMail
If Not maildb.IsOpen Then
Messagebox "Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es wird keine Aufgabe erstellt.", 16, "Adressen"
Exit Sub
End If 'If Not maildb.IsOpen Then
'Neue Aufgabe erstellen
Set taskdoc = New NotesDocument(maildb)
taskdoc.Form = "Task"
Call taskdoc.ComputeWithForm(True, True)
' Hier können weitere Felder bearbeitet werden
' z.B. taskdoc.StartDate = doc.BeginnDatum
'Anlegen und füllen des Richtextfeldes für die Aufgabenbeschreibung
Set rtitem = taskdoc.CreateRichTextItem("Body" )
Call rtitem.AppendText("Hier steht die Aufgaben-Beschreibung")
Call taskdoc.Save(True,False)
End Sub
Axel
-
bei mir tut sich nix. Kannst du an den Stellen, wo ich es meiner Maske anpassen muss kurz was zu schreiben??
Wäre echt nett. Sorry, bin noch nicht sehr lange in der notes programmierung.
-
Hi,
du brauchst in deiner Maske eigentlich keine großen Anpassungen zu machen. Füge lediglich einen Aktionsbutton ein und kopiere den Code in den Click - Event ein.
Das Aufgabendokument wird vollständig im Hintergrund
erstellt.
Wenn das Aufgaben-Dokument angezeigt werden soll, dann füge nachfolgende zwei Zeilen nach
Call taskdoc.Save(True,False)
ein.
Set taskuidoc = workspace.EditDocument(True, taskdoc) 'Dokument im Frontend öffnen
Call taskdoc.Remove(True) 'Das Dokument, das im Backend erstellt wurde, löschen
und füge zu den DIM - Anweisungen diese noch hinzu:
Dim taskuidoc As NotesUIDocument
Ist es jetzt ein bißchen klarer geworden?
Axel
-
ok, danke. Jetzt klappt es
Und wie kann ich dann auch die Feldihalte übergeben? z.B. das Datum oder auch das Thema.
-
Hi,
nichts leichter als das.
Wenn du meinen Code genommen hast, mit dieser Zeile
taskdoc.StartDate = doc.FeldnameinDeinerMaske
Für jedes weitere Feld die Zeile einfach nochmal einfügen und an die Feldnamen anpassen.
Axel
-
habe z.B. taskdoc.StartDate = doc.Wann
da kommt aber nachdem ich es in den Kalender schreiben lassen will, also nach dem Click folgende Fehlermeldung:
variant does not contain an object
-
Hi,
bitte poste mal den gesamten Code, wenn du meinen Code verwendet hast, sollte das eigentlich funktionieren.
Axel
-
Sub Click(Source As Button)
Dim maildb As NotesDatabase
Dim taskdoc As NotesDocument
Dim rtitem As NotesRichTextItem
Set maildb = New NotesDatabase("","")
Call maildb.OpenMail
If Not maildb.IsOpen Then
Messagebox "Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es wird keine Aufgabe erstellt.", 16, "Adressen"
Exit Sub
End If 'If Not maildb.IsOpen Then
'Neue Aufgabe erstellen
Set taskdoc = New NotesDocument(maildb)
taskdoc.Form = "Task"
Call taskdoc.ComputeWithForm(True, True)
taskdoc.StartDate = doc.Wann_er
'Anlegen und füllen des Richtextfeldes für die Aufgabenbeschreibung
Set rtitem = taskdoc.CreateRichTextItem("Body" )
Call rtitem.AppendText("Hier steht die Aufgaben-Beschreibung") 'Kann ich den Inhalt der Aufgabenbeschreibung nicht auch mit doc.feldname in den Body übergeben?
Call taskdoc.Save(True,False)
End Sub
-
Hi,
den Teil hast du vergessen:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc AS NotesDocument
'Zugriff auf das aktuelle Dokument
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Call rtitem.AppendText("Hier steht die Aufgaben-Beschreibung") 'Kann ich den Inhalt der Aufgabenbeschreibung nicht auch mit doc.feldname in den Body übergeben?
Das funktioniert so:
Call rtitem.AppendText(doc.feldname(0))
Axel
-
super, dankeschön. Hat prime funktioniert