Domino 9 und frühere Versionen > ND7: Entwicklung
NotesFont in einem RT-Field setzen
(1/1)
deepmessage:
Hallo,
ich möchte die Schriftarten in einem Textfeld anpassen und habe folgendes Konstrukt zusammengebaut:
--- Code: ---Set rtnav = rtItem.CreateNavigator
If rtnav.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH) Then
Set rtrange = rtItem.CreateRange
Set rtnav2 = rtItem.CreateNavigator
Set rtnav3 = rtItem.CreateNavigator
Set rtrange2 = rtItem.CreateRange
Do
Call rtrange.SetBegin(rtnav)
Call rtrange.SetEnd(rtnav)
Set rtnav2 = rtrange.Navigator
Set rtnav3 = rtrange.Navigator
If rtnav2.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH) Then
'Call rtnav3.FindFirstElement(RTELEM_TYPE_TEXTRUN) 'rtnav3 ist somit synchron mit rtnav2
Do
Call rtrange2.SetBegin(rtnav2)
'If rtnav3.FindNextElement(RTELEM_TYPE_TEXTRUN) Then Call rtrange2.SetEnd(rtnav3)
Set nrtStyle = rtrange2.Style
nrtStyle.NotesFont = rtItem.GetNotesFont("Default Sans Serif", True)
Call rtrange2.SetStyle(nrtStyle)
Loop While rtnav2.FindNextElement(RTELEM_TYPE_TEXTRUN)
End If
Loop While rtnav.FindNextElement(RTELEM_TYPE_TEXTPARAGRAPH)
Call Save()
End If
--- Ende Code ---
Leider funktioniert das nicht so ganz... Denn ich habe ein RichText-Feld mit unterschiedlichen Formatierungen pro Zeile, die dann irgendwie verworfen werden.
Weiß jemand, wie man diese Formatierung mit setStyle "zeilenweise" setzen kann, bzw. ein NotesRichTextRange auf eine Zeile begrenzen kann?
Gruß
Alex
thomson666:
sry, hab mir dein beispiel nicht genau angesehen, aber an und für sich funktioniert es mit einer schleife einwandfrei...
ich befülle eine tabelle und verschicke diese dann per mail...
Dim db As NotesDatabase
Dim ses As New NotesSession
Dim item As NotesItem
Dim sdoc As NotesDocument
Dim rtnav As NotesRichTextNavigator
Dim rtrangeCell As NotesRichTextRange
Dim rtitem As NotesRichTextItem
Dim richStyle As NotesRichTextStyle
Set db = ses.CurrentDatabase
'Dim ndoc As New NotesDocument(db)
Dim view As NotesView
Set view = db.GetView("settbl")
Set sdoc = view.GetFirstDocument
Set item = sdoc.GetFirstItem("ini_table")
Call doc3.ReplaceItemValue("Form","Memo")
Call doc3.CopyItem(item,"Body")
Set rtitem = doc3.GetFirstItem("Body")
Set richStyle = ses.CreateRichTextStyle
Set rtnav = rtitem.CreateNavigator
Call rtnav.FindFirstElement(RTELEM_TYPE_TABLECELL)
Dim i As Integer
i = 1
Do
Set rtrangeCell = rtitem.CreateRange
Call rtitem.BeginInsert(rtnav)
If i = 12 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 17
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(HostUser)
Call rtitem.EndInsert
Elseif i = 17 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 17
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText("Lotus Notes")
Call rtitem.EndInsert
Elseif i = 20 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 17
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(action)
Call rtitem.EndInsert
Elseif i = 25 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.Bold = True
richStyle.FontSize = 12
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(actiontxt)
Call rtitem.EndInsert
Elseif i = 30 Then
richStyle.Bold = False
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(VName)
Call rtitem.EndInsert
Elseif i = 35 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(NName)
Call rtitem.EndInsert
Elseif i = 40 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(HostUser)
Call rtitem.EndInsert
Elseif i = 45 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(banknr)
Call rtitem.EndInsert
Elseif i = 50 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(RegServer)
Call rtitem.EndInsert
Elseif i = 55 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(maildomain)
Call rtitem.EndInsert
Elseif i = 60 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(MailDB)
Call rtitem.EndInsert
Elseif i = 65 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(idgueltig)
Call rtitem.EndInsert
Elseif i = 70 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(idpfad)
Call rtitem.EndInsert
Elseif i = 75 Then
richStyle.NotesFont = STYLE_NO_CHANGE
richStyle.FontSize = 10
Call rtitem.AppendStyle(richStyle)
Call rtitem.AppendText(mailntf)
Call rtitem.EndInsert
End If
Call rtitem.EndInsert
i=i+1
Loop While rtnav.FindnextElement(RTELEM_TYPE_TABLECELL)
Call rtitem.AppendRTItem(rtitem1)
Call doc3.Send(True,admin)
vielleicht hilft dir das weiter...
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln