Notesuiworkspace Frameset и Currentview

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

Наш партнер Genesis Hackspace
  1. Event01

    Event01 Гость

    Здравствуйте, такой вопрос. Можно ли переопределить стандартный дефолтный фреймсет, чтобы свойство CurrentView объекта NotesUIWorkspace возвращало текущее представление в моем фреймсете (не используя OpenView объекта NotesUIDatabase)
    И еще один вопрос: почему не работает database script из database resources (на событие открытия БД и закрытия не производит соотвествующих действий)? :) :angry:
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Иногда и работает - смотря как БД открывается.
    Скорее всего, связано с особенностью определения notesUIWorkspace.CurrentDatabase. Не отработает, например, когда пользователь открывает БД из рабочей области через переход к представлению по View - GoTo.
     
  3. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    работает
    либо у тебя там какие-то глюки, либо после того как написал код, закрой базу и в нотесе и в дизайнере (а лучше лотус перегрузи), потом проверь...
    если не будет работать, нужно попробовать очистить кеш. либо убить базу cache.ndk, либо найти в ней нужные доки и убить...

    так не будет, да :)
     
  4. Omh

    Omh Well-Known Member
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Ещё DatabaseScript не отрабатывает, если, например, пустануть агента из базы (из меню Actions), который открывает документ из этой же базы.
     
  5. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    1
    А также DatabaseScript не отрабатывает при открытии документа по доклинку.
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    )) интересно, а он отрабатывает когда-нить, кроме случаев открытия БД на УИ через File/Database/Open (или аналогичного способа)?
     
  7. Omh

    Omh Well-Known Member
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Akupaka
    Вопрос не в бровь, а по йайцам!
     
  8. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Работает, например, еще при открытии БД или представления по notesurl
    (вида Notes:///ReplicaID или Notes:///ReplicaID/View).
    А вот для notesurl документа не работает :)
    И где здесь логика? :angry:
     
  9. Event01

    Event01 Гость

    у меня получается, что при внесении любых изменений в дизайнере, он перестает отрабатывать без перезапуска самого дизайнера. в остальном вроде нормально теперь работает. Спасибо за ответы. Теперь меня интересует только первый вопрос.
     
  10. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    1
    В принципе, св-во NotesUiWorkspace.CurrentView возвращает текущий вид в независимости от того, отображён ли он через дефолтный фрейм-сет, или системный, или кастомный. Текущий вид - это вид в активном фрэйме. Опишите, в каком контексте у вас не срабатывает NotesUiWorkspace.CurrentView? От куда запускается скрипт: из акции ли какого-то фрема с вьюшкой, в событии ли формы при открытии документа, от куда?
     
  11. Event01

    Event01 Гость

    скрипт не запускается из формы на событие нажатия на кнопку в соседнем фрейме.
     
  12. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    1
    Скрипт запускается. При этом, у Вас возникает ошибка, не так ли? Если нет - значит это совсем другая проблема. Если да - то в момент нажатия на кнопку, сначала активизируется фрейм с формой, содержащей кнопку. Поэтому св-во NotesUiWorkspace.CurrentView is Nothing. Стандартный фреймсет ведёт себя аналогично. Решить задачу можно, запомнив текущий UI-вид в событии QueryOpen, PostOpen или Initialize формы, открывающейся из представления, т.е. пока представление ещё активно. А в кнопке уже использовать полученный объект.
    Только в кнопке всё равно проверяте объект на Nothing. Иначе, если представление во фрейме сменится, а документ останется, то запомненный объект сбросится в Nothing.
     
  13. Event01

    Event01 Гость

    тут немного сложнее задача у меня. Форма в фрейме открывается с открытием бд и закрывается с закрытием бд. Она открывается не из представления.
    Еще один вопрос возник: есть ли возможность объявлять в LN глобальные переменные, видимые во всем приложении?
     
  14. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    про глобальные переменные:
    глобальные переменные на уровне приложения, к счастью, объявить нельзя. однако никто не мешает сохранить состояние объекта в профайле, environment-е или где-нить еще. если хочеца сохранить объект UI - меняйте логику...
    про фреймсет иже с ним: не ясна задача... uiview можно запомнить в Initialize формы, как писал TIA. Межфреймовое взатмодействие проще всего организовать через JavaScript. Если треба выполнить действие в контексте одного документа во фрйеме, а потом другого, то играйте в эту сторону:
    JS кнопка с кодом типа:
    windows.frames[0].document.button1.click
    windows.frames[1].document.button2.click
    (треба поиграть в свойства windows.top чтоб достучаться до нужного фрейма)
    на кажой форме скрытая кнопка, на вкладке <HTML> каждой кнопки: name = id = "button" & i. На кнопке - LSScript, пользующий контекст текущего документа. Ссылку на uiview можно взять из документа, который открывался их этого uiview....
    З.Ы. Если вы вдруг опишите сообществу задачу в общих чертах - наверняка решение будет найдено...
     
Загрузка...
Похожие Темы - Notesuiworkspace Frameset Currentview
  1. yerke
    Ответов:
    4
    Просмотров:
    3.152
  2. sanch
    Ответов:
    9
    Просмотров:
    4.393
  3. Botu
    Ответов:
    6
    Просмотров:
    1.071
  4. dzheyzhi
    Ответов:
    2
    Просмотров:
    1.512
  5. Dragon108
    Ответов:
    4
    Просмотров:
    1.677

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