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

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

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

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

Ссылка на документы из вьюхи

  • Автор темы LIGHT
  • Дата начала
L

LIGHT

Все привет!

Делаю такую штуку. Есть база в которой создается документ и в который необходимо воткнуть кучу ссылок на другие документы из другой базы в поле ArhDocLink, документы выбираются из пик листа,

Выбираю, перебираю коллекцию выделеных документов получаю их UNID и название.
Как сделать так:

[Ж] - это желтый листой

[Ж] Название документа [Ж] Название второго документа [Ж] Название третьего документа ...


Вопрос срочный, горит. Помогите мылсями, что-то в тупик зашел.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
NotesRichTextItem.AppendDocLink

Также посмотри класс NotesNewsletter. Позволяет из коллекции получить документ с ссылками.
 
L

LIGHT

Не получатеся, код:

Код:
	Set collection = ws.PickListCollection( _
PICKLIST_CUSTOM, _
True, _
ElementServer(0), _
ElementPath(0), _
"По контрагентам", _
"Связь с архивом", _
"Выбирите все документы которые необходимо связять с текущим" )

If collection.Count = 0 Then Goto NoSelect	


Dim rtitem As NotesRichTextItem
Set rtitem = New NotesRichTextItem( ThisDoc, "LinkArhDoc" )


Set doc = collection.GetFirstDocument
While Not ( doc Is Nothing )

Call rtitem.AppendDocLink( doc, "Открыть документ из базы дыннх" & dbarh.Title )
Call rtitem.AddTab( 1 )
Call rtitem.AppendText( doc.Subject( 0 ) )
Call rtitem.AddNewLine( 1 )
Call uidoc.Refresh
Call uidoc.Save

Set doc = collection.GetNextDocument ( doc )
Wend

Где тут собака закопалась.
Поле на форме
LinkArhDoc Rich Text пробовал и другие, вычисляемое, само себе равно.

В цикле данные возвращаются корректно, типа MsgBox doc.UniversalID
 
L

LIGHT

Код:
	Set doc = collection.GetFirstDocument

Почему???

doc - это документ из коллекции (из пиклиста) мне то их и нужно перебирать.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
В смысле что не получается?
Видно, что добавляешь ссылки в один документ. При этом в цикле постоянно сохраняешь другой. Что потом происходит вообще не понятно.
 
I

IsAvailable

Для: LIGHT
А в чем именно проблема? Что не так отрабатывает?
Каждый в новой строке что ли создается? Тогда да - 17-я строка однозначно )))

Для: Medevic
Видимо, надо полагать, что ThisDoc = uidoc.Document
Ну а сохранять можно и в цикле - криво, но если автору нравится, то фигли... % )))
 
L

LIGHT

Проблема такая

В окрытый документ в поле LinkArhDoc сунуть N ссылок на документы выбранные в пиклисте.
В цикле я беру документы пик листа collection и doc и сую в открытый документ ThisDoc
Сохранял по всякому и ThisDoc.save(true,true) и uidoc.Save ....

Результат обработки кода, поле пусто!
В массиве данные от docSubject и др. есть. Printом проверено

PS

Dim uidoc As NotesDocument
Set uidoc = ws.CurrentDocument
Dim ThisDoc As NotesDocument
Set ThisDoc = uidoc.Document

Что не так в 17той строке? Пробовал и () в конец лепить, не решает затык.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--QuoteBegin-LIGHT+26:12:2007, 15:48 -->
<span class="vbquote">(LIGHT @ 26:12:2007, 15:48 )</span><!--QuoteEBegin-->Что не так в 17той строке? Пробовал и () в конец лепить, не решает затык.
[snapback]91437" rel="nofollow" target="_blank[/snapback]​
[/quote]
Всё нормально там. Это выражение такое. :)

Короче, Call uidoc.Refresh и Call uidoc.Save убираем из цикла.
После цикла добавляем
Call rtitem.Update
Call ThisDoc.Save(True, True)

Потом закрываем документ (при этом не сохраняем когда спросит) и открываем заново.
 
L

LIGHT

Для: Medevic Спасибо!
Код:
Потом закрываем документ (при этом не сохраняем когда спросит) и открываем заново.
Как это можно обойти корректно, т.е. юзерам же не объясниш такую глупость )))
 
I

IsAvailable

Вероятно, возвращаемся суда же вот:
 
L

LIGHT

Все равно караяво, мне в принципе не важно сразу показывать ссылки, можно и после ручного переоткрытия. Но после ручного они не появляются. Т.е. я убрал все сохранялки в коде, и сохраняю по кнопке на панеле действий, выхожу из дока, захожу а ссылок нет.
 
A

Akupaka

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

сохраняйте док на бекэнде, а не на уи...
 
L

LIGHT

Зделал так, из вьюхи в док загоняются только Subject документов. И в скрытое поле ложиться их UNID а на PostSave повесил функцию которая прогоняет все елементы поля и вставляет линк ;)
 
Мы в соцсетях:

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