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

Тема в разделе "Lotus - Программирование", создана пользователем LIGHT, 26 дек 2007.

  1. LIGHT

    LIGHT Гость

    Все привет!

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

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

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

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


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

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    NotesRichTextItem.AppendDocLink

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

    LIGHT Гость

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

    Код (Text):
        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
     
  4. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Ошибка в 17-ой строке.
     
  5. LIGHT

    LIGHT Гость

    Код (Text):
        Set doc = collection.GetFirstDocument
    Почему???

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

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    В смысле что не получается?
    Видно, что добавляешь ссылки в один документ. При этом в цикле постоянно сохраняешь другой. Что потом происходит вообще не понятно.
     
  7. IsAvailable

    IsAvailable Гость

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

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

    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той строке? Пробовал и () в конец лепить, не решает затык.
     
  9. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--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)

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

    LIGHT Гость

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

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
  12. IsAvailable

    IsAvailable Гость

  13. LIGHT

    LIGHT Гость

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    сохраняйте док на бекэнде, а не на уи...
     
  15. LIGHT

    LIGHT Гость

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

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