Lotus Notes富文本添加带样式时间戳失效及光标位置问题求助
Lotus Notes富文本时间戳样式修复及光标定位解决方案
一、富文本样式不生效的问题修复
你的代码中样式未生效的核心原因是富文本样式的应用方式错误,NotesRichTextStyle需要通过BeginStyledText和EndStyledText包裹目标文本,才能确保样式正确绑定到文本内容上。另外代码存在未声明变量的语法问题,一起修正如下:
关键修改点:
- 补全未声明的
uidoc、doc变量 - 使用
BeginStyledText/EndStyledText包裹需要加粗的时间戳和用户名文本 - 调整样式设置的顺序,确保样式只作用于目标内容
二、光标定位到富文本底部的解决方案
关闭重开文档后光标回到顶部的问题,可通过NotesRichTextNavigator定位到富文本末尾,再结合GotoRichTextItem方法将光标移动到该位置。
完整修正后的代码
Function TimeStampBold(fieldname As String) Dim session As New NotesSession Dim workspace As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim uidocNew As NotesUIDocument Dim doc As NotesDocument Dim rti As NotesRichTextItem Dim rtiStyle As NotesRichTextStyle Dim rtNav As NotesRichTextNavigator Set uidoc = workspace.CurrentDocument uidoc.Refresh True Set doc = uidoc.Document Set rti = doc.GetFirstItem(fieldname) Set rtiStyle = session.CreateRichTextStyle() ' 设置加粗、小字号样式 rtiStyle.Bold = True rtiStyle.Fontsize = 8 ' 追加空行或直接添加时间戳 If (Len(uidoc.FieldGetText(fieldname)) = 0) Then Call rti.BeginStyledText(rtiStyle) Call rti.AppendText(Format$(Now(), "d-mmm-yy h:mm")) Call rti.EndStyledText() Else Call rti.AddNewline(2) Call rti.BeginStyledText(rtiStyle) Call rti.AppendText(Format$(Now(), "d-mmm-yy h:mm")) Call rti.EndStyledText() End If ' 追加用户名(保持加粗) Call rti.BeginStyledText(rtiStyle) Call rti.AppendText(" " & session.CommonUserName & " - ") Call rti.EndStyledText() ' 保存并重新打开文档 rti.Update doc.SaveOptions = "0" Call uidoc.Close(True) Set uidocNew = workspace.EditDocument(True, doc,,,,True) uidocNew.Document.RemoveItem("SaveOptions") ' 定位光标到富文本底部 Set rtNav = uidocNew.Document.GetFirstItem(fieldname).CreateNavigator() If rtNav.FindLastElement(RTELETYPE_TEXTPARAGRAPH) Then Call uidocNew.GotoRichTextItem(fieldname, rtNav) Else Call uidocNew.GotoField(fieldname) End If End Function
代码说明:
- 样式生效:通过
BeginStyledText启动样式上下文,包裹需要应用样式的文本,EndStyledText结束上下文,确保样式只作用于目标内容,避免被富文本原有样式覆盖。 - 光标定位:创建
NotesRichTextNavigator,找到富文本的最后一个段落元素,再通过GotoRichTextItem将光标直接定位到该位置,实现打开文档时光标停在富文本底部。
内容的提问来源于stack exchange,提问作者Mark Maden
相关产品推荐
相关产品推荐

