Обновление/загрузка Документа В Соседний Фрейм

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

  1. cLif

    cLif Active Member

    Регистрация:
    27 сен 2010
    Сообщения:
    35
    Симпатии:
    0
    Ситуация следующая:
    Есть фреймсет с 2 фреймами. В 1ый загружается основной документ, в соседний загружается форма, содержащая EmbView и респонзы основного документа.

    Пробую записать в переменную окружения UNID основного документа, но вот беда: форма с респонзами открывается раньше и ее содержимое не корректное (в связи с тем, что UNID основного загружается позже).
    Не могу понять как обойти проблему именно в текущей реализации (с 2мя фреймами).

    В целом, общая задача, наверно, стоит так:
    Есть основной документ, в котором содержится информация о дополнительных/взаимосвязанных документах (unid, filepath и пр), категориях и пр. Нужно во фреймсете открыть эти самые дополнительные документы при открытии основного документа. Как? =)
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Попробуйте сделать второй фрэйм пустым, в PostOpen формы основного документа добавить:
    Код (LotusScript):
    Call UIWorkspace.SetTargetFrame("frame2")
    Call UIWorkspace.ComposeDocument("", "", "form2")
    Добавлено
    А разместить внедрённое представление в форме самого документа не проще ли было бы?
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    cLif
    можно попробовать где-то уже в постопене документа 1го фрейма записывать унид и рефрешить 2й фрейм путем повторного открытия формы (т.е. через SetTargetFrame + [Compose]). такое сама не пробовала

    Добавлено: nvy уже всё сказал :)
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
  5. cLif

    cLif Active Member

    Регистрация:
    27 сен 2010
    Сообщения:
    35
    Симпатии:
    0
    Проще, но интересует именно такая постановка вопроса, поскольку в общем случае, это может быть не форма с EmbView, а просто другой документ (не новый)

    К сожалению при WS.ComposeDocument разваливается фреймсет (даже, если у открываемой формы проставить фреймсет для открытия)
    При WS.EditDocument вообще вываливается ошибка Expression out of range...причем если дебажить - нет ошибки...но при закрытии валится Лотус.

    Добавлено:
    Уф...тем не менее, спс за линк=) буду осиливать)

    Тут, к сожалению, проблема не в обновлении внедренного представления...а в том, что значение "не попадает" в форму при открытии...
     
  6. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    А если использовать классы NotesProperty, NotesPropertyBroker?
    Помню, что идея работает, но надо париться с Composite application..
    И это более "честное решение", чем "очереди сообщений".
     
  7. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Тогда м.б. настраивать unid в представлении из которого открывается главный документ (в кнопке или QueryOpenDocument).
     
  8. cLif

    cLif Active Member

    Регистрация:
    27 сен 2010
    Сообщения:
    35
    Симпатии:
    0
    Благодарю за помощь!
    Решение найдено из наиболее простых, но не самых красивых - первый раз пишем в окружение нужные значения, затем переоткрываем документ.

    nvy, VladSh, спасибо за новую информацию о потоках сообщений и классах NotesProperty, NotesPropertyBroker - будет что изучить.
     
Загрузка...

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