Autor Thema: NotesFont in einem RT-Field setzen  (Gelesen 1763 mal)

Offline deepmessage

  • Junior Mitglied
  • **
  • Beiträge: 73
NotesFont in einem RT-Field setzen
« am: 02.03.07 - 16:47:34 »
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


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

Offline thomson666

  • Senior Mitglied
  • ****
  • Beiträge: 285
  • Geschlecht: Männlich
  • niemand hats leicht, aber leicht hats oan...
Re: NotesFont in einem RT-Field setzen
« Antwort #1 am: 13.03.07 - 08:30:01 »
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...

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz