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

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

Статус темы:
Закрыта.
  1. Altaya

    Altaya Active Member

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

    nvyush Lotus team
    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 Lotus team
    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 Lotus team
    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.571
  2. sima12
    Ответов:
    4
    Просмотров:
    1.776
  3. iivvnn
    Ответов:
    4
    Просмотров:
    1.861
  4. MMN
    Ответов:
    28
    Просмотров:
    7.639
  5. Xalet
    Ответов:
    7
    Просмотров:
    3.557
Статус темы:
Закрыта.

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