• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите с Notesrichtextitem

  • Автор темы nik3528
  • Дата начала
N

nik3528

Уважаемые помогите разобраться в чем проблема:
Вопрос вот в чем, на форме есть поле 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
 
A

amigolinx

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

nvyush

nik3528
По-моему, после Wend не хватает UIdoc.document.save true, true
 
N

Nalula

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

nik3528

А чем можно заменит RichText чтобы получить такой результат?
 
H

hosm

переоткрывайте...
ну, или можно с натяжкой заменить на вычисляемый pass-thru html, где есть html-ссылка на документ через аналог notesUrl в обычном текстовом поле, если размер не перевалит за 32К :D
 
O

Omh

Обалдеть! На форуме новая женщина: Nalula!

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

nik3528

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

Omh

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!