Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Selin am 11.07.02 - 13:32:38

Titel: einen eintrag in den Notes Kalender über...
Beitrag 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
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Axel am 11.07.02 - 15:04:20
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


Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Selin am 11.07.02 - 15:36:08
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??
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Axel am 11.07.02 - 15:43:16
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




Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Selin am 11.07.02 - 15:54:23
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.
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Axel am 11.07.02 - 16:08:23
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
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Selin am 11.07.02 - 16:27:09
ok, danke. Jetzt klappt es

Und wie kann ich dann auch die Feldihalte übergeben? z.B. das Datum oder auch das Thema.
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Axel am 11.07.02 - 16:31:23
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
 
 
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Selin am 11.07.02 - 16:40:07
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
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Axel am 11.07.02 - 16:48:44
Hi,

bitte poste mal den gesamten Code, wenn du meinen Code verwendet hast, sollte das eigentlich funktionieren.

Axel
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Selin am 11.07.02 - 16:53:07
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
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Axel am 11.07.02 - 17:00:00
Hi,

den Teil hast du vergessen:

Zitat


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



Zitat

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
Titel: Re: einen eintrag in den Notes Kalender über...
Beitrag von: Selin am 11.07.02 - 17:10:23
super, dankeschön. Hat prime funktioniert