Autor Thema: Rückgabe neues Doc bei Aufruf aus Function  (Gelesen 1201 mal)

Offline cococo69

  • @Notes Preisträger
  • Senior Mitglied
  • ****
  • Beiträge: 286
  • Geschlecht: Männlich
  • Super dieses Forum!!!
    • Mein Hobby...
Rückgabe neues Doc bei Aufruf aus Function
« am: 07.07.06 - 11:17:05 »
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 

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 

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

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Rückgabe neues Doc bei Aufruf aus Function
« Antwort #1 am: 07.07.06 - 11:20:48 »
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
Rainer Zaske

MCSD - C#

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Rückgabe neues Doc bei Aufruf aus Function
« Antwort #2 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

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Rückgabe neues Doc bei Aufruf aus Function
« Antwort #3 am: 07.07.06 - 12:01:09 »
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
Rainer Zaske

MCSD - C#

Offline cococo69

  • @Notes Preisträger
  • Senior Mitglied
  • ****
  • Beiträge: 286
  • Geschlecht: Männlich
  • Super dieses Forum!!!
    • Mein Hobby...
Re: Rückgabe neues Doc bei Aufruf aus Function
« Antwort #4 am: 07.07.06 - 12:16:51 »
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


Danke Oxse,

das war die Lösung!!!

Gruß
Armin

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz