Domino 9 und frühere Versionen > ND8: Entwicklung

Kopieren von Feldinhalten aus geöffnetem Kalenderdokument.

(1/1)

Sommersprosse:
Hallo zusammen,

folgendes Problem:
Wir haben eine Datenbank erstellt in der Meetingprotokolle abgelegt werden sollen. Dafür wurde im Kalenderdokument ein Button hinzugefügt, der die Datenbank öffnet und dort ein neues Dokument erstellt. Das Kalenderdokument bleibt weiterhin geöffnet um in beiden Dokumenten weiterhin Daten eingeben zu können.

In diesem neu erstellten Dokument sollen wenn möglich die eingeladenen Personen aus dem Kalenderdokument übernommen werden, sprich aus einem nicht gespeicherten Frontend Dokument in ein neues. Folgenden Code habe ich schon mit dem das Dokument schon geöffnet wird und diverse Felder auch schon erfolgreich gefüllt werden.



--- Code: --- Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim aktdoc As NotesDocument
Dim newdoc As NotesDocument
Dim newuidoc As NotesUIDocument
Dim item As notesitem

server = "UNSERSERVER"
file = "it\protokoll.nsf"
Call ws.OpenDatabase(server,file,"","",True,False)


'Neues Dokument anlegen

Set db = session.CurrentDatabase  'Aktuelle Datenbank
Set newdoc = New NotesDocument(db)
newdoc.Form = "fm_minutes"  'Zuweisung mit welcher Maske das Dokument erstellt werden soll
newdoc.mailadress = session.UserName
newdoc.creator = session.Username
Set newuidoc = workspace.EditDocument(True, newdoc) 'Neues Dokument anzeigen
Call newuidoc.Save

--- Ende Code ---

Damit aber nicht 2x die betreffenden Personen eingetippt werden, wäre es praktisch aus der geöffneten Einladung zu übernehmen. Lt. Template "Appoinment" gibt es diese Feld "tmpRequiredAttendees" Typ berrechnet zur Anzeige. Welche Deklarationen brauche ich um diese Felder anzapfen zu können?
Besser gesagt, geht das überhaupt ohne das ich das Kalenderdokument gespeichert habe?

ascabg:
Hallo,

Und welches Feld liegt denn dem "zur Anzeige berechneten Feld" zugrunde?


Andreas

Peter Klett:
Du musst das aktuell geöffnete Dokument nehmen und kannst dann auch temporäre Felder (Items) kopieren. Entsprechende Anpassungen in rot

   Dim ws As New NotesUIWorkspace
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim uidoc As NotesUIDocument
    Dim aktdoc As NotesDocument
    Dim newdoc As NotesDocument
    Dim newuidoc As NotesUIDocument
    Dim item As notesitem

Dim workspace As New NotesUIWorkspace
Set uidoc = workspace.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document
   
    server = "UNSERSERVER"
    file = "it\protokoll.nsf"
    Call ws.OpenDatabase(server,file,"","",True,False)
   
   
 'Neues Dokument anlegen
   
    Set db = session.CurrentDatabase  'Aktuelle Datenbank
    Set newdoc = New NotesDocument(db)
    newdoc.Form = "fm_minutes"  'Zuweisung mit welcher Maske das Dokument erstellt werden soll
    newdoc.mailadress = session.UserName
    newdoc.creator = session.Username

newdoc.MeinFeld = doc.tmpRequiredAttendees

    Set newuidoc = workspace.EditDocument(True, newdoc) 'Neues Dokument anzeigen
    Call newuidoc.Save


Sommersprosse:
Hallo Peter,

vielen Dank für die Info,

klappt bestens.... musste noch ein bischen im Debugger suchen bis ich das richtige Feld gefunden hatte in der die Einträge dann auch wirklich drin stehen, aber dann hat's gepasst.

@Andreas
das Feld tmpRequiredAttendees ist im Template "Kalendereintrag".

Befüllt wird aber das Feld EnterSendTo im Kalender.


--- Code: ---Sub Click(Source As Button)


Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim newdoc As NotesDocument
Dim newuidoc As NotesUIDocument
Dim item As notesitem

Set uidoc = ws.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document

server = "UNSERSERVER"
file = "it\protokoll.nsf"
Call ws.OpenDatabase(server,file,"","",True,False)


'Neues Dokument anlegen

Set db = session.CurrentDatabase  'Aktuelle Datenbank
Set newdoc = New NotesDocument(db)
newdoc.Form = "fm_minutes"  'Zuweisung mit welcher Maske das Dokument erstellt werden soll
newdoc.mailadress = session.UserName
newdoc.creator = session.Username

newdoc.participant = doc.EnterSendTo

Set newuidoc = ws.EditDocument(True, newdoc) 'Neues Dokument anzeigen
Call newuidoc.Save
End Sub
--- Ende Code ---

.... atnotes ist einfach immer wieder hilfreich , danke!

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln