Задача: заменить текст в RichTextItem. Например, есть какой-то шаблон с тегами, в котором динамически происходит подстановка значений.
Поиск и замену всех тегов указанного значения можно выполнить вот в таком цикле:
, где rtItem - переданный NotesRichTextItem.
Саму замену можно произвести вот так:
НО. В таком случае при выполнении rtRange.Remove() мы теряем стилевую информацию и вставка происходит со значениями по-умолчанию. Перенос rtRange.Remove() не помогает. Нужно вместе с этим сохранить стиль. Полный код замены значения выглядит вот так:
Дополнения и комментарии приветствуются!
Поиск и замену всех тегов указанного значения можно выполнить вот в таком цикле:
1 2 3 4 5 6 7 8 9 10 11 12 | Dim rtRange As NotesRichTextRange Dim rtNav As NotesRichTextNavigator Set rtRange = rtItem.Createrange() Set rtNav = rtItem.Createnavigator() While rtNav.Findfirststring(TAGKEY) <span class= "Apple-tab-span" style= "white-space: pre;" > </span>//Замена значения <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Set rtRange = rtItem.Createrange() <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Set rtNav = rtItem.Createnavigator() Wend |
Саму замену можно произвести вот так:
1 2 3 4 5 6 7 | Call rtRange.Setbegin(rtNav) Call rtRange.Setend(rtNav) Call rtRange.Remove() <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Call rtItem.Begininsert(rtNav) Call rtItem.Appendtext(VALUE) //Добавляем текстовое значение. Call rtItem.Endinsert() |
НО. В таком случае при выполнении rtRange.Remove() мы теряем стилевую информацию и вставка происходит со значениями по-умолчанию. Перенос rtRange.Remove() не помогает. Нужно вместе с этим сохранить стиль. Полный код замены значения выглядит вот так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Dim rtRange As NotesRichTextRange Dim rtNav As NotesRichTextNavigator Dim rtStyle As NotesRichTextStyle Set rtRange = rtItem.Createrange() Set rtNav = rtItem.Createnavigator() While rtNav.Findfirststring(TAGKEY) <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Call rtRange.Setbegin(rtNav) <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Call rtRange.Setend(rtNav) <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Set rtStyle = rtRange.Style <span class= "Apple-tab-span" style= "white-space: pre;" > </span> <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Call rtItem.Begininsert(rtNav) <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Call rtItem.AppendStyle(rtStyle) <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Call rtItem.Appendtext(VALUE) //Добавляем текстовое значение. <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Call rtItem.Endinsert() <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Call rtRange.Remove() <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Set rtRange = rtItem.Createrange() <span class= "Apple-tab-span" style= "white-space: pre;" > </span> Set rtNav = rtItem.Createnavigator() Wend |
Дополнения и комментарии приветствуются!
Комментарии
Отправить комментарий