Domino 9 und frühere Versionen > ND6: Entwicklung
Rückgabe neues Doc bei Aufruf aus Function
(1/1)
cococo69:
Hallo,
diesen Code von Matthias (TMC) habe ich geringfügig geändert als Funktion in eine Script-Bibliothek gesteckt.
--- Code: ---Function MailErstellen As Variant
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim maildb As NotesDatabase
Dim maildoc As NotesDocument
Dim profil As NotesDocument
Set uidoc = ws.CurrentDocument 'ui
Dim thisdoc As NotesDocument
Set thisdoc = uidoc.Document 'ui
Set maildb = New NotesDatabase("","")
maildb.OpenMail
Set profil = maildb.GetProfileDocument("CalendarProfile")
Set maildoc = New NotesDocument(maildb)
maildoc.Form = "Memo"
maildoc.Logo = profil.DefaultLogo(0)
maildoc.Principal = profil.Owner(0)
maildoc.SendTo = thisdoc.EMail(0)
Call ws.EditDocument(True, maildoc)
Set uidoc = ws.CurrentDocument 'ui
Call uidoc.GotoField("Subject")
Set MailErstellen = maildoc
End Function
--- Ende Code ---
Nun möchte ich diese Funktion so aufrufen, dass das Mail-Dokument erstellt wird und ich es für weitere Manipulationen im Zugriff habe.
Mein Aufruf:
--- Code: ---Sub Click(Source As Button)
Dim doc As NotesDocument
Set doc = MailErstellen
End Sub
--- Ende Code ---
Fehlermeldung:
Illegal reference to: MAILERSTELLEN
Rufe ich lediglich
MailErstellen
auf, so funktioniert der Code einwandfrei (ein neues Mail wird erstellt), ich habe es aber nicht im Zugriff.
Wie muss ich vorgehen???
Gruß
Armin
ZaLudtske:
Hallo,
damit das Funktioniert mußt du einen Verweis auf die Datenbank als Parameter beim Aufruf der Prozedur übergeben.
MailErstellen(ndbApp as notesdatabase)
Achtung: Diesen Sieteneffekt gibt es noch zwischen vielen anderen Objekten
Rainer
0xse:
Muss er? Er holt sich doch die DB aus dem WS.
Ich würd mal spontan sagen das es der falsche Rückgabetyp ist:
Function MailErstellen As NotesDocument
ZaLudtske:
Hallo,
nein, er muß die Referenz auf die Datenbank übergeben, sonst wird beim Rücksprung die Referenz auf die offene DB gelöscht und der Rückgabewert wird nothing. Das kann man wunderbar im Debugger nachvollziehen.
Anbei noch ein Link auf das Posting, das ich mal ins Forum eingestellt habe.
http://atnotes.de/index.php?topic=30619.0
Rainer
cococo69:
--- Zitat von: 0xse am 07.07.06 - 11:22:44 ---Muss er? Er holt sich doch die DB aus dem WS.
Ich würd mal spontan sagen das es der falsche Rückgabetyp ist:
Function MailErstellen As NotesDocument
--- Ende Zitat ---
Danke Oxse,
das war die Lösung!!!
Gruß
Armin
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln