Перебор Документов В Коллекции

Тема в разделе "Lotus - Программирование", создана пользователем Altaya, 21 май 2012.

Наш партнер Genesis Hackspace
Статус темы:
Закрыта.
  1. Altaya

    Altaya Active Member

    Регистрация:
    1 мар 2012
    Сообщения:
    35
    Симпатии:
    0
    Доброго времени суток.
    Прошу помощи по такому вопросу: есть вид, в нем отобраны документы по условию SELECT (Form = "FIRST" | @IsResponseDoc). Вид отображает доки, респонсы и ответы на респонсы. Респонсы отображаются по одной и той же форме, но в каждой коллекции (если считать по главному доку) есть Главный респонс и множество дополнительных(Различаются значением одного поля и набором отображаемых акций).
    Вопрос знатокам:
    Если открыт один из дополнительных респонсов, как достучаться до главного респонса, чтобы изменить значение требуемого поля?
    Бьюсь над этой задачей уже очень долго(((
     
  2. nvyush

    nvyush Well-Known Member
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    В каком смысле достучаться? На собаках предок адресуется полем $REF, на лс doc.ParentDocumentUNID.

    Добавлено
    Если несколько уровней вложенности, перебирать unidы предков, пока форма не изменится.
     
  3. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Altaya
    рекурсия "вверх" по ParentDocumentUNID
     
  4. Altaya

    Altaya Active Member

    Регистрация:
    1 мар 2012
    Сообщения:
    35
    Симпатии:
    0
    В смысле - как к нему коректно обратиться, а то у меня либо ошибка либо возвращается уже открытый документ.
     
  5. nvyush

    nvyush Well-Known Member
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Проверьте, сброшена ли в свойствах БД галка "Don't support specialized response hierarchy" (последняя закладка свойств БД).
    Для новых (несохранённых) документов $REF и ParentDocumentUNID ещё не определены.
     
  6. Altaya

    Altaya Active Member

    Регистрация:
    1 мар 2012
    Сообщения:
    35
    Симпатии:
    0
    Все, сдаюсь... сил нет больше мучить данную задачу... придется ее временно забросить(((( Спасибо всем, кто пытался помочь) видать я еще не дошла до этого уровня(((
     
  7. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    типа такого цикла:
    Код (Text):
    ....... определение ND - текущего документа

    Set NDB = ND.ParentDatabase
    while (ND.IsResponse)
    Set ND= NDB.GetDocumentByUNID(ND.ParentDocumentUNID)
    Wend       
    ....... ND - содержит главный док
     
  8. Altaya

    Altaya Active Member

    Регистрация:
    1 мар 2012
    Сообщения:
    35
    Симпатии:
    0
    Спасибо, но боюсь что мне это надо делать через FORALL, а его то я никак понять и не могу((( и подходящего примера нету((( Задание легкое, сама понимаю, мне просто нужно перебрать коллекцию, пока не найдется документ содержащий в искомом поле отличное от условия значение... Похоже, просто зациклилась и поэтому не могу решить...
     
  9. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    зачем FORALL?

    Код (Text):
    ...........
    Set ND= NDC.GetFirstDocument
    while not (ND Is Nothing)
    ------ обработка текущего ND ------
    Set ND= NDC.GetNextDocument(ND) 'переходим к следующему документу коллекции
    wend
    ...........
     
  10. nvyush

    nvyush Well-Known Member
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Altaya
    Forall применяется к массивам и спискам, с коллекциями документов он не работает
    Перебирать коллекцию можно как RAJ написал, я предпочитаю так:
    Код (LotusScript):
    Set doc = dc.GetFirstDocument
    Do Until doc Is Nothing
    If doc.GetItemValue("Нужное поле")(0) = "Нужное значение" Then Exit Do
    Set doc = dc.GetNextDocument(doc)
    Loop
    If Not doc Is Nothing Then 'на случай если документ не найден
    'что-то делаем
    End IF
     
  11. Altaya

    Altaya Active Member

    Регистрация:
    1 мар 2012
    Сообщения:
    35
    Симпатии:
    0
    Каюсь... я балбеска(((( Это же элементарно... точно зациклилась((( все получилось)))))))))))))))) ГИГАНТСКОЕ СПАСИБО!!!!!!!!!!!!!

    п.с.: к сожалению, больше сегодня не могу ++++ вам добавить((((
     
Загрузка...
Похожие Темы - Перебор Документов Коллекции
  1. 123456789igor
    Ответов:
    1
    Просмотров:
    1.579
  2. sima12
    Ответов:
    4
    Просмотров:
    1.810
  3. iivvnn
    Ответов:
    4
    Просмотров:
    1.871
  4. MMN
    Ответов:
    28
    Просмотров:
    7.684
  5. Xalet
    Ответов:
    7
    Просмотров:
    3.564
Статус темы:
Закрыта.

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