Domino 9 und frühere Versionen > ND7: Entwicklung

Mailsend button

(1/2) > >>

Alperen15:
Hallo alle zusammen. Ich habe hier eine Schaltfläche die ne mail verschicken soll, wenn man die Schaltfläche betätigt...allerdings habe ich eine Fehlermeldung "Object varialbe not set" an der Fett markierten Stelle. Ich habe doch doc definiert. Würde mich sehr freuen wenn Ihr mir sagen würdet was genau da falsch ist.


Sub Click(Source As Button)
   
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim db As NotesDatabase
   Dim names As NotesDatabase
   Dim namesdoc As NotesDocument
   Dim ProfilDoc As NotesDocument
   Dim uid As String
   Dim namespath As Variant
   Dim email As NotesDocument
   Dim rtitem As NotesRichTextItem
   
   Set db = session.CurrentDatabase
   Set uidoc = ws.CurrentDocument   
   Set doc = uidoc.Document
   
   
   If doc.fdNeuVerantwortlicher = "" Then
      'email versenden
      Set email = New NotesDocument(db)
      email.Form = "Memo"
      email.Subject = "Ein neuer Verbesserungsvorschlag ist eingetroffen"
      Set rtitem = New NotesRichTextItem( email, "Body" )
      Call rtitem.AppendText( "Umsetzung des Vorschlags wurde durch den LAS freigegeben. Link zum Dokument --> " )
      Call rtitem.AppendDocLink(doc, "link to document" )      
      Call email.Send( False, doc.fdVerantwortlicher)   
      Msgbox("Verantwortlicher wird informiert")
   Else
      'email versenden
      Set email = New NotesDocument(db)
      email.Form = "Memo"
      email.Subject = "Ein neuer Verbesserungsvorschlag ist eingetroffen"
      Set rtitem = New NotesRichTextItem( email, "Body" )
      Call rtitem.AppendText( "Umsetzung des Vorschlags wurde durch den LAS freigegeben. Link zum Dokument -->" )
      Call rtitem.AppendDocLink(doc, "link to document" )      
      Call email.Send( False, doc.fdNeuVerantwortlicher)   
      Msgbox("Verantwortlicher wird informiert")
   End If
   
   doc.fdYesNo4 = "Yes"
   doc.fdNameYes4= session.CommonUserName
   doc.fdDatumYes4 = Now
   
   'doc speichern
   Call uidoc.Refresh
   Call doc.Save(True, False)
End Sub

oxyd21:
If doc.fdNeuVerantwortlicher(0) = "" Then

koehlerbv:
Das ergibt aber einen Type mismatch statt "Object variable not set".

Bernhard

Alperen15:
Danke oxyd21, jep Bernahrd hast recht  :)

Peter Klett:
Das hattest Du nicht gefragt, bekommst aber trotzdem eine Antwort: Du schreibst viel Script doppelt. Dabei unterscheiden sich die beiden Mails nur darin, aus welchem Feld der Empfänger gezogen wird. Dein Code wird dadurch schwerer les- und wartbar. Versuche, alles nur einmal zu schreiben.

sinngemäß:

Dim verantwortlicher As Variant
If doc.fdNeuVerantwortlicher (0) = "" Then
   verantwortlicher = doc.fdNeuVerantwortlicher
Else
   verantwortlicher = doc.fdVerantwortlicher
End If
'email versenden
....
Call email.Send( False, verantwortlicher) 
....

Natürlich gibt es noch viele andere Möglichkeiten, das zu schreiben, aber vermeide Doppeltes !

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln