Как на Lotusscript выделить документ в представлении

Тема в разделе "Lotus - Программирование", создана пользователем soleil, 5 мар 2010.

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

    soleil Гость

    Необходимо программно переместить строку выделения на другой документ в представлении. Можно ли как-то использовать для этого UnprocessedDocuments?
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    что-то типа SelectDocument должно быть, посмотрите в хелпе
     
  3. xKlonx

    xKlonx Lotus team
    Lotus team

    Регистрация:
    10 сен 2009
    Сообщения:
    412
    Симпатии:
    0
    Вот вам пример из хелпа:
    Код (Text):
    Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim workspace As New NotesUIWorkspace
    Dim collection As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim uiview As NotesUIView
    Set db = session.CurrentDatabase
    Set uiview = workspace.CurrentView
    Set collection = db.AllDocuments
    Set doc = collection.GetFirstDocument
    Call uiview.SelectDocument(doc)
    End Sub
     
  4. Darker

    Darker Гость

    Вообще UI-ный метод .SeletDocument как погода, то селектиться, то нет, а иногда селектиться, но экран уходит далеко вниз и не видно какой документ выделился
     
  5. soleil

    soleil Гость

    Спасибо. Все получилось с помощью SelectDocument.
     
  6. soleil

    soleil Гость

    Как сделать чтобы после создания документа по форме, после закрытия формы этот новый документ выделялся в представлении?
     
  7. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    наверно, стоит сперва прорефрешить вьюху - через ws.ViewRefresh или NotesView.Refresh, а потом выделять документ.
     
  8. soleil

    soleil Гость

    Да, я обновляю вид. Но дело в том, что SelectDocument работает только с NotesUIView. А т.к. я прописываю код на кнопке сохранения формы, то могу использовать только NotesView. Или может я чего-то недопонимаю?
    Т.е. если это текущий вид, то я могу взять его как WS.CurrentView, а если я на форме нахожусь то беру его как DB.GetView("ViewName")
    Могу ли я из формы получить UIView?
     
  9. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    наверно, я туплю - но как Вы собираетесь выделить документ не в уи-виде? %)
    если вид не открыт, откройте его.
    Что, текущий вид встроен в форму, что его из формы пытаетесь получить?
    Код по выделению документа действительно иногда глючит, обычно заключается в обработчик.
    Код (Text):
    Set UIView = ws.CurrentView
    On Error Resume Next
    If Not uiView Is Nothing Then
    Call uiView.View.Refresh
    UIView.SelectDocument(doc) 
    End If
    On Error Goto 0
     
  10. soleil

    soleil Гость

    Смотрите. У меня открыт вид. Я создаю новый документ по форме. Открывается форма. Потом нажимается кнопка Сохранить и Закрыть. Форма закрывается. В рабочей области находится вид. Теперь новый документ должен выделиться в этом виде.
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    если док создавался при открытой вьюшке, доступен view.Title (опред. время ^_^ )
    по нему тоже можно получить инстанс вьюшки (при старте формы, например)
    код выше выделяет док
    если вьюшка по каким-либо причинам не обновилась (и док не отобразился) - будет облом, но тогда надо "заставить" вьюшку обновиться, до селекта
    код можно поместить в разные эвенты формы (QueryClose, например, помня об отмене создания дока)
     
  12. soleil

    soleil Гость

    Прошу прощения за глупый вопрос. Что такое инстанс вида?
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    экземпляр объекта
    и в посте выше - д.б. @ViewTitle (в CFD поле, КомпьютедФорДисплей)
    типа Set view=db.GetView(VIEWTILTLE_FIELD)
     
Загрузка...
Статус темы:
Закрыта.

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