Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: ivan_hunkeler am 24.11.06 - 11:44:19
-
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
doc.Form = "Memo"
doc.SendTo = uidoc.FieldGetText( "SendTo" )
doc.CopyTo = uidoc.FieldGetText( "CopyTo" )
doc.Subject = uidoc.FieldGetText("dspMailForNumber") + uidoc.FieldGetText( "MailSubject" )
doc.Body = uidoc.FieldGetText( "MailBody" )
Call doc.Send(False)
Soweit so gut, das funktioniert... aber ich würde nun gerne noch einen Anhang per Mail verschicken wenn irgend eine Datei ins RICHTEXT-Feld (namens "MailBody") eingefügt wurde.
Kann mir jemand sagen wie ich den Code ergänzen muss?! Meine versuche schlugen bis anhin leider alle fehl und ich glaube auch nicht das ich irgendwo hier im Forum eine lösung zu Meinem Problem gefunden hätte.
Ich bin leider noch ziemlich anfänger bei Lotus Script. Vielen Dank für die Unterstützung
-
EmbedObject
-
Na, ob das so einfach wird ... Wurde das uidoc bereits gespeichert (aus dem Code geht leider nicht mal hervor, wie uidoc instantiiert wurde)? Dann wäre ggf. ein NotesItem.CopyToDocument der einfachste Weg.
Wurde es noch nicht gespeichert (und soll auch nicht gespeichert werden), dann wird es komplizierter, weil dann der Inhalt des RichTextFeldes noch nicht im Backend zur Verfügung steht. Aber das wurde hier tatsächlich schon oft genug diskutiert und erklärt.
Bernhard
-
danke für die beiden schnellen antworten...
nee es ist und muss eigentlich nicht gespeichert werden. In diesem Fall geht es mir einfach darum das ich ein "Patient erfassen kann in einer Helpdesk db" wellche z.B. Patientendaten.doc in einem Richtext gespeichert hat.
nun sollte diese Datei einfach als Anhang ins Mail mitgeschickt werden...
wie wenn ich im Notes ein neues Memo mit anhang mache...
?!??!
Set rtitem = New NotesRichTextItem( doc, "Body" )
Set object = rtitem.EmbedObject _
( EMBED_OBJECT, "1-2-3 Worksheet", "", _
"Quarterly Report" )
doc.Attachment = object
******
vielleicht kann mir ja jemand helfen... es geht schlichtweg "nur" darum noch zu schauen ob im Feld namens "MailBody" noch ein Attachment ist...falls jaa soll er das auch noch mit versenden
ich danke für eure Hilfe, evtl. wäre ich auch dankbar wenn ihr mir einen Link zu einem schonmal besprochenen Thread geben könnte ich habe mit Suchen nie das gefunden was ich hier möchte...
grüsse ivan
-
Hallo Ivan,
also wenn das Ausgangs-Dokument gar nicht gespeichert werden soll, hast Du ein gewisses Problem: Das RichTextFeld Mailbody steht Dir dann - wie gesagt - im Backend nicht zur Verfügung, Du kannst also auch nicht feststellen, ob da etwas enthalten ist.
Aus meiner Sicht der einfachste Workaround: Du arbeitest ja sowieso im Frontend. Was spricht dann dagegen, Dein Mail auch im Frontend zu erstellen? Dann kannst Du sehr wohl auf den Inhalt von "MailBody" zugreifen:
NotesUIDocument.GotoField
NotesUIDocument.Copy
Selbiges dann für Dein Mail-Dokument, nur dann halt eben mit Paste. Das klappt dann auch mit RichText-Feldern.
HTH,
Bernhard
-
Hallo Berhard,
dane für die Antwort, ich werde mein Code nun versuchen mit diesen Teilen und der Genialen Hilfe von Notes zu erweitern, vielleicht melde ich mich jaa nochmal wenn noch nicht ganz alles klar ist:D
aber schon im voraus vielen Herzlichen Dank, dass ihr euch auch mit Anfänger wie mir rumschlägt.
Liebe Grüsse aus der Schweiz
Ivan
-
Ivan, wir waren alle mal Anfänger. Das passt schon ;)
Bernhard
-
Naja hier hab ich ein Bild von meiner Maske im Anhang.
Ehm und das mit dem GoToField war in etwa so gedacht?!
Call uidoc.GoToField( "MailBody" )
Call uidoc.Copy
Call uidoc.GoToField("anhang")
Call uidoc.Paste
oder kann ich dass, was ich hier uidoc.Copy mache gleich im Mail einfügen?!
geht wohl kaum oder?!
oder kann ich jetzt mit "EMBED_OBJECT" auf das File zugreifen?!
das test.txt sollte eigentlich "nur" noch mitgeschickt werden wenn ich auf senden klicke, der rest geht von alleine^^ oder hab ich ohne grössere Probleme geschaft.
-
Sorry, hatte da noch was vergessen:
Call uidoc.GoToField( "MailBody" )
Call uidoc.SelectAll 'DAMIT NOTES AUCH WEISS, WAS ZU KOPIEREN IST
Call uidoc.Copy
Bernhard
-
Sorry, hatte da noch was vergessen:
Call uidoc.GoToField( "MailBody" )
Call uidoc.SelectAll 'DAMIT NOTES AUCH WEISS, WAS ZU KOPIEREN IST
Call uidoc.Copy
Bernhard
ok danke, ja das klappt tip top...das verschiebt nun das File von einem Feld zum anderen, nun aber sollte es noch als Anhang mitgeschickt werden. und ich kann ja nicht einfach sagen doc.attachment = anhang oder so... was muss ich nun hier nehmen, bei text ist klar uidoc.FieldGetText aber beim Attachment?!
danke für die hilfe...
doc.Form = "Memo"
doc.SendTo = uidoc.FieldGetText( "SendTo" )
doc.CopyTo = uidoc.FieldGetText( "CopyTo" )
doc.Subject = uidoc.FieldGetText("dspMailForNumber") + uidoc.FieldGetText( "MailSubject" )
doc.Body = uidoc.FieldGetText( "MailBody" )
-
Sub Click(Source As Button)
Dim session As New NotesSession
Dim Database As NotesDatabase
Dim current As NotesDatabase
Dim mailbox As New NotesDatabase("","")
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim maildoc As NotesDocument
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim item As Variant
Dim item_body As notesItem
Dim item_sub As Variant
Dim item_bodys As Variant
Dim sendas As String
sendas = "ivan.hunkeler@ksl.ch"
' Setzen der aktuellen E-Mail-Adresse des Users
' Dim useremail As Variant
' useremail = uidoc.FieldGetText( "HelpdeskSendTo" )
' sendas = useremail(0)
' get handle to mail.box on the users current mail server
Set Database = session.CurrentDatabase
' Aktuelles Dokument
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.document
' Create a new document in the severs mail box
Set maildoc = New Notesdocument(Database)
maildoc.Form = "Memo"
maildoc.From = sendas
maildoc.SendFrom = sendas
' maildoc.SendTo = sendto
item = uidoc.FieldGetText( "HelpdeskSendTo" )
Call maildoc.ReplaceItemValue( "SendTo", item )
' maildoc.Recipients = sendto
Call maildoc.ReplaceItemValue( "recipients", item )
' maildoc.Subject = subject
item_sub = uidoc.FieldGetText( "HelpdeskMailSubject" )
Call maildoc.ReplaceItemValue( "Subject", item_sub )
' maildoc.MailBody= Mailbody
' item_bodys = uidoc.FieldGetText( "MailBody" )
' Call maildoc.ReplaceItemValue( "Body", item_bodys )
' Call rtitem.AppendText("item_bodys")
maildoc.Body = uidoc.FieldGetText("MailBody")
' uidoc.GotoField("MailBody")
' uidoc.SelectAll
' uidoc.Copy
' uidoc.GotoField("Body")
' uidoc.Paste
' Body-Feld
Dim rtitemA As Variant
Dim rtitemB As Variant
Call doc.Save( True, False )
Call uidoc.Save
Set rtitemA = doc.GetFirstItem( "MailBody" )
Set rtitemB = New NotesRichTextItem (maildoc, "MailBody")
Call rtitemB.AppendRTItem( rtitemA )
maildoc.PostedDate = Now()
maildoc.ComposedDate = Now()
maildoc.DeliveredDate = Now()
maildoc.Principal = sendas
maildoc.EncryptOnSend = False
Call maildoc.Save( True, False )
Call maildoc.Send(False )
End Sub
soweit soo gut... das funktioniert... danke für eure Bemühungen...
nun wäre ich noch über einen Tipp glücklich;-)
...ich lesse ja das RichTextfeld so aus * maildoc.Body = uidoc.FieldGetText("MailBody") *
...gibt es eine andere, bessere möglichkeit?! bei der dir Formatierung vom RichTextFeld ins Mail übernommen wird?! Mir werden soo keine Zeilenumbrüche mitgeliefert...
danke und schönen tag noch
greeeetz ivan
-
Siehe Antwort #4.
Bernhard
-
Siehe Antwort #4.
Bernhard
danke, das ist also die lösung
ich habs mal mit folgendem code versucht, hat aber nicht geklappt...
' uidoc.GotoField("MailBody")
' uidoc.SelectAll
' uidoc.Copy
' uidoc.GotoField("Body")
' uidoc.Paste
aber dann versuch ichs nochmal...
-
Obicht - mit dem Code kopierst Du innerhalb eines Dokumentes! Für meine Variante brauchst Du auch das zu mailende Dokument im FrontEnd!
Bernhard
-
Obicht - mit dem Code kopierst Du innerhalb eines Dokumentes! Für meine Variante brauchst Du auch das zu mailende Dokument im FrontEnd!
Bernhard
Mit anderen worten so wie ich es hier mache, ist es nicht möglich den Text im RichTextFeld FORMATIERT in ein Mail einzufügen?!
bzw. es ist nicht möglich Zeilenumbrüche mit zu verschicken?!
wenn man #7 meine Maske anschaut, das Mail kommt wunderbar bei mir an mit Text und Anhang... nur ist der Text nicht formatiert, sprich alles auf einer Linie...
das ist mein einziges Problem.
Diese Geschichte sollte wenn möglich mit dem CODE von #10 gehen, hab da soo lange rumstudiert:$ und würde den Code am liebsten nur durch ein bis zwei zeilen ergänzen um den TEXT formatiert oder einfach mit Zeilenschaltung(zeilenumbruch) in einem Mail zu versenden... :D
-
SOO DANKESCHÖN AN ALLE DIE MIR HELFEN WOLLTEN...
ich habs geschaft phuuu endlich:D
.. das problem war schlussendlich nur, dass ich es zuerst speichern muss vor dem senden...
aber nun klappt alles... schönen tag noch
bis bald vielleicht wieder..
greeetz ivan