Программный Outline

Тема в разделе "Lotus - Программирование", создана пользователем MMN, 24 апр 2013.

  1. MMN

    MMN Well-Known Member

    Репутация:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    Встала задача создать дополняемое меню
    из кода дописываю пункты меню в Outline

    создаю Click и пытаюсь обновить
    Call workspace.SetTargetFrame("MenuFrame")
    Call workspace.OpenPage("PageMenu")
    или
    Call workspace.ReloadWindow

    ничего не обновляется

    если я в дизайнере просто открою Outline, то в клиенте Click отработается и чудесным образом вижу обновленный Outline
    как заставить его обновиться ??
    каким образом происходит его обновление когда открываю его в дизайнере??
     
  2. savl

    savl Well-Known Member
    Команда форума Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.104
    Симпатии:
    155
    Если 8-ка попробуйте так:
    Еще можно обходным путем попробовать:
    Закрываем текущую базу, затем сразу открываем её снова.
     
  3. MMN

    MMN Well-Known Member

    Репутация:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    в восьмерке OutlineReload не работает, даже разработчики пишут, что в хелпе есть, но для красоты
    а кроме как переоткрытие базы ??
     
  4. savl

    savl Well-Known Member
    Команда форума Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.104
    Симпатии:
    155
    Фреймсет переоткрыть можно. Думаю тут дело в кэше дизайна.

    За OutlineReload спасибо, буду знать, хотел заюзать как раз.

    Добавлено: ОН работает!!!
    Надо просто 2 раза подряд вызывать :
    Код (LotusScript):
    Call ws.OutlineReload(OutName,db.FilePath)
    Клиент 8.5.3 FP2
     
  5. MMN

    MMN Well-Known Member

    Репутация:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    97
    Симпатии:
    0
    Да, действительно работает, спасибо
     
  6. Anonimous

    Anonimous Well-Known Member

    Репутация:
    0
    Регистрация:
    15 июн 2012
    Сообщения:
    120
    Симпатии:
    0
    Я вот тоже тут спрошу кое-что...
    У меня есть Frameset. В нем 2 фрейма: верхний большой и нижний. В нижнем у меня навигатор с action hotspot - ами. Надо сделать так, чтоб при щелчке по хотспотам в верхнем фрейме открывался вид какой-то базы.
    Содержимое нижнего фрейма - форма с action hotspot - ами. На этой форме есть скрытые поля, в которых указатели на базы - соответственно по ним открываем базу при щелчке по хотспоту.
    Допустим, есть хотспот А и хотспот Б. И поля соответственно FieldA и FieldB. При клике на хоспот А базу А открываю по указателю в поле А, при клике на хотспот Б - базу Б.
    Все хорошо, при клике на хотспот A база в верхнем фрейме открывается командой @Command([Compose]; сервер:путь; форма). Но только когда я потом кликаю на хотспот Б, значения полей перестают быть доступными для кода в хотспоте Б, а вид базы Б не открывается без указателя в поле Б. Это после выполнения команды @Command([Compose]; путь; форма)

    Вот код, но причина - в команде @Command([Compose]; путь; форма). А обоих хотспотах код обинаковый, отличается только 1-я строчка

    FieldA := Значение поля А;

    // С помощью FieldA узнаю путь к базе и сервер, тут ничего не влияет

    @SetTargetFrame("Верхний фрейм");
    @Command([Compose]; сервер:путь; "Форма")

    Команда @SetTargetFrame("Нижний фрейм") не помогла. RefreshFrame тоже. Если кто поделится опытом, то заранее спасибо.
     
  7. Anonimous

    Anonimous Well-Known Member

    Репутация:
    0
    Регистрация:
    15 июн 2012
    Сообщения:
    120
    Симпатии:
    0
    Пока переменными окружения воспользовался. Еще значения полей формы в нижнем фрейме остаются видными, если обращаться к ним с помощью кнопок на LS. А вот если на языке @, то после Compose значения полей все равно перестают быть доступными
     
Загрузка...

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