G
Guest
Помогите решить следующую задачу. Есть форма в которой есть поле Body с типом RichText. Как сделать так, что бы при нажатии на кнупку, отправлялось письмо и при этом сохранилось форматирование?
Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе
Sub Click(Source As Button)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim workspace As New NotesUIWorkspace
Dim rtitem As NotesRichTextItem
Dim richStyle As NotesRichTextStyle
Set wsdoc = workspace.CurrentDocument
Set db = s.CurrentDatabase
Set doc = New NotesDocument (db)
Set rtitem = New NotesRichTextItem( doc, "Body" )
Set richStyle = s.CreateRichTextStyle
mailbody = wsdoc.FieldGetText("mailbody")
subject = wsdoc.FieldGetText("Subject")
privetstvie=wsdoc.FieldGetText("privetstvie")+" "
richStyle.Italic = True
richStyle.bold = True
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(privetstvie)
Call rtitem.AppendText(entry.ColumnValues(1) )
richStyle.Italic = False
richStyle.bold = False
Call rtitem.AddNewline(2)
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(mailbody)
doc.Subject = subject
Call doc.Send(False)
End Sub
Вот это поясни. Как и куда берется ?А вот когда из поля RichText береш текст, то он преобразовывается к PlainText.
Set rtitem = New NotesRichTextItem( doc, "Body")
Set richStyle = s.CreateRichTextStyle
mailbody = wsdoc.FieldGetText("mailbody")
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(mailbody)
Call doc.Send(False)
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim s As New NotesSession
Dim db As NotesDatabase
Dim rtitemA As Variant
Dim rtitemB As Variant
Dim view As NotesView
Dim i As Integer
Dim nav As NotesViewNavigator
Dim entry As NotesViewEntry
Dim rtitem As NotesRichTextItem
Dim richStyle As NotesRichTextStyle
'---------------------------------------------------------------------------------------------------------
Set uidoc = w.CurrentDocument
Set doc = uidoc.Document
Call uidoc.Save
Set rtitemA = doc.GetFirstItem( "body" )
Set rtitemB = doc.GetFirstItem( "body1" )
Set rtitem = New NotesRichTextItem(doc, "tmp")
Set richStyle = s.CreateRichTextStyle
Set db = s.CurrentDatabase
Set view = db.GetView("Почта")
Set nav = view.CreateViewNav()
Set entry = nav.GetFirst
richStyle.Italic = True
richStyle.bold = True
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(" ")
Call rtitem.AppendText(entry.ColumnValues(1))
richStyle.Italic = False
richStyle.bold = False
'----------------------------------------------------------------------------------------------------------
If ( rtitemA.Type = RICHTEXT And rtitemB.Type = RICHTEXT ) Then
Call rtitemA.AppendRTitem(rtitem)
Call rtitemA.AddNewLine(1)
Call rtitemA.AppendRTItem( rtitemB)
doc.SaveOptions = "0"
doc.SendTo=entry.ColumnValues(2)
Call doc.Save(False, True)
Call doc.Send(False)
' Call uidoc.Close
End If
Print (rtitem.text)
Print (rtitemA.text)
'===============================================================
For i=0 To nav.Count-2 В ЭТОЙ ЧАСТИ ВОЗНИКАЮТ ПРОБЛЕМЫ
Set entry = nav.GetNext(entry) К ТЕЛУ НОВОГО ПИСЬМА ПРИБАЛЯЕТСЯ
'Set rtitemA = doc.GetFirstItem( "body" ) ТЕЛО ПРЕДЫДУЩЕГО ПИСЬМА
'Set rtitemB = doc.GetFirstItem( "body1" )
Set richStyle = s.CreateRichTextStyle
richStyle.Italic = True
richStyle.bold = True
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(" ")
Call rtitem.AppendText(entry.ColumnValues(1))
richStyle.Italic = False
richStyle.bold = False
'----------------------------------------------------------------------------------------------------------
If ( rtitemA.Type = RICHTEXT And rtitemB.Type = RICHTEXT ) Then
Call rtitemA.AppendRTitem(rtitem)
Call rtitemA.AddNewLine(1)
Call rtitemA.AppendRTItem( rtitemB)
doc.SaveOptions = "0"
doc.SendTo=entry.ColumnValues(2)
' Call doc.Save(False, True)
Call doc.Send(False)
End If
Print (rtitemA.text)
Next i
Sub Click(Source As Button)
Dim boxType As Long
Dim answer As Integer
boxType& = MB_YESNO + MB_ICONQUESTION
answer = Messagebox ("Вы действительно хотите сделать рассылку?" , boxType& , "Внимание!!!")
If answer = 6 Then
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim s As New NotesSession
Dim db As NotesDatabase
Dim rtitemA As Variant
Dim rtitemB As Variant
Dim view As NotesView
Dim rtitem As NotesRichTextItem
Dim richStyle As NotesRichTextStyle
Dim tmpDoc As NotesDocument
Set uidoc = w.CurrentDocument
Set doc = uidoc.Document
Call uidoc.Save
Set rtitemA = doc.GetFirstItem( "body" )
Set rtitemB = doc.GetFirstItem( "body1" )
Set richStyle = s.CreateRichTextStyle
Set db = s.CurrentDatabase
Set view = db.GetView("Почта")
Set tmpDoc = view.getFirstDocument
While Not tmpDoc Is Nothing
Set rtitem = New NotesRichTextItem(tmpdoc, "Body")
If ( rtitemA.Type = RICHTEXT And rtitemB.Type = RICHTEXT ) Then
Call rtitem.AppendRTitem(rtitemA)
richStyle.Italic = True
richStyle.bold = True
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(" ")
Call rtitem.AppendText(tmpDoc.ColumnValues(1))
richStyle.Italic = False
richStyle.bold = False
Call rtitem.AddNewLine(1)
Call rtitem.AppendRTItem( rtitemB)
tmpdoc.Subject=uidoc.FieldGetText("Subject")
tmpdoc.SendTo=tmpDoc.ColumnValues(2)
Call tmpdoc.Send(False)
End If
Set tmpDoc = view.getnextDocument (tmpDoc)
Wend
Messagebox "Письма успешно отправлены!" , MB_OK , "Отчет об отправке"
Else
Messagebox "Рассылка отменяется! Письма не отправлены!" , MB_OK , "Внимание!"
End If
End Sub
Обучение наступательной кибербезопасности в игровой форме. Начать игру!