Получение Текста Из Richtext В Пересылаемом Письме

Тема в разделе "Lotus - Программирование", создана пользователем Мыш, 7 фев 2014.

  1. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.019
    Симпатии:
    8
    Всем здрасьте. Допиливаю шаблон почтовой базы с целью добавления дисклеймера в исх. письма (штатный способ не подходит). Соббсно, возникла, вроде, простая задача - понять, есть ли уже дисклеймер в теле письма, дабы не добавлять его повторно.
    Проблемы начались с пересылаемым письмом. Пробовал получить на QuerySave текст так:
    Код (LotusScript):
    Dim s As String
    s = uidoc.FieldGetText("Body")
    if Instr(1, s, "<фрагмент подписи>", 5) = 0 Then ...
    Выяснил, что не работает - возвращаемое значение содержит только подпись человека, пересылающего письмо, и ничего более. Почитал вот тут, переделал:
    Код (LotusScript):
    Dim s As String
    Call uidoc.GotoField("Body")
    Call Source.FindString("<фрагмент подписи>",False,False,False, False, False, False, True, True, True)
    s = Source.GetSelectedText()
    If s = "" Then...
    Результат тот же самый. Шаблон базы 6.5.х, работаю с клиентом 8.5.х. Ессно, сохранять док-т и работать с RichText через backend крайне не хочется (ИМХО, слишком уж сильное вмешательство с стандартный шаблон). Возможно, есть другие способы? Заранее благодарен за помощь.
     
  2. Darkhan

    Darkhan Well-Known Member

    Регистрация:
    14 дек 2012
    Сообщения:
    95
    Симпатии:
    4
    Может на собаках @Abstract?
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Мыш
    Кажется через сервер можно, в админке.
    Policies. Создаем политику, закладка Mail -> Message Disclaimers
    Указываем текст, настраиваем.

    Важно назначить политику пользователям.
    Наши сказали, что если делать через конфигуратор (??) то все равно будет работать и браться из политики, но вставляться криво.
     
  4. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.019
    Симпатии:
    8
    Darkhan, пробовал, увы, не работает (как если бы поля "Body" не было).
    savl, к сожалению, этот способ не подходит (дисклеймер "динамический", варьируется в зависимости от разных параметров).
     
  5. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Мыш
    Грубо, но если вот так?
    При вставке прописываем поле : EnableDisclaimer = "1"
    При Replay вставляем всегда.
    При Forward проверять поле, = 1 - не вставлять.

    Разные вариации - разные поля флагов.
    RT проверять проблематично всегда, а текстовое поле легко проверить.
     
  6. susinmn

    susinmn Well-Known Member

    Регистрация:
    16 окт 2007
    Сообщения:
    530
    Симпатии:
    8
    А если на QuerySave
    Код (LotusScript):
    uidoc.FieldSetText("SaveOptions", "0")
    uidoc.Refresh(True)
    uidoc.FieldSetText("SaveOptions", "1")
    Set RT = uidoc.Document.GetFirtItem("Body")
    RTText = RT.GetUnformattedText()
    if Instr(1, RTText , "<фрагмент подписи>", 5) = 0 Then ...
     
  7. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.019
    Симпатии:
    8
    savl, дык при форварде это поле из исходного письма не наследуется. Форвард - вообще вещь в себе, как я понимаю...
    ЗЫ. Невнимательно я прочел свою же ссылку - способ с FindString в событии QuerySend, вроде, пашет, буду дальше копать. Но все равно, занятно - на QuerySave добавление дисклеймера с помощью AppendText отрабытыывало всегда. То есть, писать можно, читать нельзя? :)
    ЗЗЫ. Спасибо всем откликнувшимся. :)
     
  8. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Source.Refresh(True) пробовал?
     
  9. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.019
    Симпатии:
    8
    susinmn, Medevic работает - благодарю! :crash: Млин, совсем забыл про эту тонкость...
     
Загрузка...

Поделиться этой страницей