1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
Скрыть объявление

Уважаемый Гость, в 23:30 по мск форум будет закрыт на профилактику на 1,5 часа до 01:00 24.10.2017

Помогите с Notesrichtextitem

Тема в разделе "Lotus - Программирование", создана пользователем nik3528, 13 апр 2010.

  1. nik3528

    nik3528 Гость

    Репутация:
    0
    Уважаемые помогите разобраться в чем проблема:
    Вопрос вот в чем, на форме есть поле ViewListPredobr - RichText

    по открытию диалога выбираю документы и при нажатии Ok хочу получить следующее

    Документ -> ссылка
    Документ -> ссылка
    .............................
    Документ -> ссылка

    Вот код Action

    Код:
    Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument	
    Dim collection As NotesDocumentCollection
    Dim rtitem As NotesRichTextItem
    Dim doc As NotesDocument
    
    Set uidoc = workspace.CurrentDocument
    
    Set collection = workspace.PickListCollection( _
    PICKLIST_CUSTOM, _
    True, _
    session.CurrentDatabase.Server, _
    session.CurrentDatabase.FilePath, _
    "PovtorObr", _
    "Обращения заявителя - "&uidoc.Document.GetItemValue ("JobPlace")(0), _
    "Пожалуйста выберите предыдущие обращения:",_
    uidoc.Document.GetItemValue ("JobPlace")(0))
    If collection.Count = 0 Then
    Messagebox "Действоие отменено пользователем" ,, _
    "Сообщение" 
    Else
    Set doc = collection.GetFirstDocument()
    Set rtitem = New NotesRichTextItem( uidoc.Document, "ViewListPredobr" )
    While Not(doc Is Nothing)
    Call rtitem.AddNewline(1)
    Call rtitem.AppendText( "Документ ->")
    Call rtitem.AppendDocLink( doc,"" )
    Set doc = collection.GetNextDocument(doc)
    Wend
    End If
    End Sub
     
  2. amigolinx

    amigolinx Гость

    Репутация:
    0
    Если по-простому, то РТитем на лету в УИ не делается. Надо сохранить и переоткрыть документ.
     
  3. nvyush

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    nik3528
    По-моему, после Wend не хватает UIdoc.document.save true, true
     
  4. Nalula

    Nalula Гость

    Репутация:
    0
    А пробовали сохранять и переоткрывать документ? Если не ошибаюсь, то изменения в полях RichTextItem, отображаются только после сохранения и переоткрытия дока.
     
  5. nik3528

    nik3528 Гость

    Репутация:
    0
    А чем можно заменит RichText чтобы получить такой результат?
     
  6. nvyush

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Ничем

    Но можно глянуть сюда:
    Обновление Rtfield
     
  7. hosm

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.442
    Симпатии:
    8
    переоткрывайте...
    ну, или можно с натяжкой заменить на вычисляемый pass-thru html, где есть html-ссылка на документ через аналог notesUrl в обычном текстовом поле, если размер не перевалит за 32К :D
     
  8. Omh

    Omh Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Обалдеть! На форуме новая женщина: Nalula!

    Это оффтопик, а по теме - сохранение + переоткрытие документа решит проблему.
     
  9. nik3528

    nik3528 Гость

    Репутация:
    0
    Непонятно то, что даже при добавлении строчки
    Код:
    uidoc.document.save true,true
    и переоткрытия документа поле пустое
    а в debug Source items - поле занчение в VAlue есть - :D
     
  10. Omh

    Omh Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Надо бекграунд док сохранять, ты же туда добавляешь.
    Что-то типа
    Код:
    Call Doc.Save(True, False)
    Call Doc.ReplaceItemValue("SaveOptions", "0")
    Call uidoc.Close
    'Тут Перевыбираешь документ из базы, например, из view
    Call ws.EditDocument(True, Doc)
    И код давали парой постов выше
     
  11. hosm

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.442
    Симпатии:
    8
    http://codeby.net/forum/threads/29669.html
    nvy, извини, не заметила, что ты указал - повторилась ;)
    я все-таки добавила замечание про форму, мы как-то общались)
     
Загрузка...

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