Du skal bruge \"AppendStyle method\". Følgende eksempel er \'grabbet\' fra Notes hjælpen (se specielt mellem de 2 \'***):
Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Set db = session.CurrentDatabase Dim doc As New NotesDocument(db) Call doc.AppendItemValue _ (\"From\", session.UserName) Call doc.AppendItemValue _ (\"Subject\", Inputbox(\"Subject?\")) Call doc.AppendItemValue _ (\"Categories\", Inputbox(\"Category?\")) \'*** Dim richStyle As NotesRichTextStyle Set richStyle = session.CreateRichTextStyle richStyle.NotesFont = FONT_COURIER richStyle.FontSize = 14 Dim richText As New NotesRichTextItem(doc, \"Body\") Call richText.AppendStyle(richStyle) \'*** newPara = Inputbox _ (\"Paragraph of text for \"\"Body\"\" item\") firstPara = True While newPara <> \"\" If firstPara Then firstPara = False Else Call richText.AddNewLine(2) End If Call richText.AppendText(newPara) newPara = Inputbox _ (\"Paragraph of text for \"\"Body\"\" item\") Wend Call doc.Save(True, False) End Sub
Der findes følgende properties: Bold Effects FontSize Italic NotesColor NotesFont Parent PassThruHTML Strikethrough Underline
Mit eksempel bruger Notes\' egen syntax - prøv med VB\'s syntax. I dit eksempel har du jo allerede documentet og RichTextItem\'et: oDoc og oItem. Du mangler blot at \"Dim\'e\" NotesRichTextStyle, sætte attributterne og sluttelig Append\'e disse. Prøv noget i stil med:
Dim oStyle As NotesRichTextStyle Set oStyle = oSess.CreateRichTextStyle oStyle.NotesFont = FONT_COURIER oStyle.FontSize = 14 Call oItem.AppendStyle(richStyle)
Public Function SendMail(byval Tomailadd As String, byval MailSub As String, byval MailBody As String) As Object
Dim oSess As Object Dim oDB As Object Dim oDoc As Object Dim oItem As Object Dim direct As Object Dim Var As Variant Dim Body As String
Set oSess = CreateObject(\"Notes.NotesSession\") Set oDB = oSess.GETDATABASE(\"\", \"\") Call oDB.OPENMAIL Set oDoc = oDB.CREATEDOCUMENT REM Dim oStyle As NotesRichTextStyle Set oStyle = oSess.CreateRichTextStyle oStyle.NotesFont = FONT_COURIER oStyle.FontSize = 14 oStyle.Bold = True oStyle.Italic = True REM Set oItem = oDoc.CREATERICHTEXTITEM(\"BODY\")
Call oItem.AppendStyle(oStyle)
oDoc.Form = \"Memo\" oDoc.Subject = MailSub oDoc.sendto = Tomailadd oDoc.Body = MailBody oDoc.postdate = Date oDoc.visable = True oDoc.SEND False Set oSess = Nothing Set oDB = Nothing Set oDoc = Nothing Set oItem = Nothing
End Function
PS AppendStyle virker (kun) med Notes 4.6 og frem.
Nå ja, det kunne jeg jo havde gjort fra starten :-). Følgende er testet og virker (her):
Public Function SendMail(byval Tomailadd As String, byval MailSub As String, byval MailBody As String) As Object
Dim oSess As Object Dim oDB As Object Dim oDoc As Object Dim oItem As Object Dim direct As Object Dim Var As Variant Dim Body As String Dim oStyle As Object \'NY
Set oSess = CreateObject(\"Notes.NotesSession\") Set oDB = oSess.GETDATABASE(\"\", \"\") Call oDB.OPENMAIL Set oDoc = oDB.CREATEDOCUMENT
Rem UD! Dim oStyle As NotesRichTextStyle Set oStyle = oSess.CreateRichTextStyle oStyle.NotesFont = FONT_COURIER oStyle.FontSize = 14 oStyle.Bold = True oStyle.Italic = True
Set oItem = oDoc.CREATERICHTEXTITEM(\"BODY\") Call oItem.AppendStyle(oStyle) Call oItem.AppendText(MailBody) \'Ny
oDoc.Form = \"Memo\" oDoc.Subject = MailSub oDoc.sendto = Tomailadd Rem UD! oDoc.Body = MailBody oDoc.postdate = Date oDoc.visable = True oDoc.SEND False Set oSess = Nothing Set oDB = Nothing Set oDoc = Nothing Set oItem = Nothing
End Function
BEMÆRK du er nødt til at Append\'e MailBody til dit RichTextItem. Hvis du har MailBody splittet op i flere bidder kan du appende en style til første bid, en anden til næste bid osv. En Style gælder derfra hvor den er sat og fremad.
Og det er det som jeg skal bruge, ser du courier new er nemlig en skrift type hvor alle bokstaver er lige lange og så kan man lave en form for tabel i mailen ellers kommer teksten til at stå hulter til bulder...
Skide være med det 170 point hvis du kan vise mig COURIER_NEW også lover jeg dig jeg aldrig skal nævne noget om det mere [smiler].
Nu lokker du! :-) Men desværre er kun følgende fonte mulige: FONT_COURIER FONT_HELV FONT_ROMAN Men almindelig Courier er da også fast i tegn bredden (de andre to er propotionalskrifter, dem kan du ikke bruge). Jeg tror den eneste forskel fra C-alm. til C-New er, at C-New er en TrueType font (og er pænere). Du kan måske omgå problemet ved at undlade at sætte fonten, men sikre at default fonten i Body feltet på Memo formen i Notes Mail er \'Courier New\'. Alternativt at sætte TAB\'s ind så det ser pænt ud - men det er et helt andet spørgsmål ;-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.