Автоматизировать Нажатие Кнопки Ок

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

  1. PDiddy

    PDiddy Member

    Регистрация:
    29 авг 2009
    Сообщения:
    7
    Симпатии:
    0
    Ситуация такая:
    В документе при нажатии кнопки "Обработать" открывается диалоговое окно (По требованию диалоговое окно должно открываться) с кнопкой "ОК".
    Во время нажатия "ОК" создается поле Х и меняются значения полей Y и Z.

    Вопрос:
    Можно ли обойтись в этой ситуации без нажатия кнопки "ОК", т.е. на миг открывается окно и сразу же закрывается (не просто клоз виндов, а типа автоматический сабмит), при этом записи должны попадать.

    За ранее спасибо.
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    да, можно просто используя вынь-апи функции "нажимать" на нужные нам кнопки

    но ЗАЧЕМ?!
     
  3. PDiddy

    PDiddy Member

    Регистрация:
    29 авг 2009
    Сообщения:
    7
    Симпатии:
    0
    Если не трудно, можете описать подробно? Как это делается?

    Требование руководства
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Та ну... изврат...
     
  5. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    ну для начала

    требования руководоства врятли сводяться к автоматизированному нажатию на кнопку, скорее всего стоит глобальная задача, которую можно решить друигими (не такими ректальными) способами
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    PDiddy, в чем необходимость данного диалогового окна?
     
  7. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    По хорошему можно обойтись без окна :)
    Смысла в нем не вижу :D
    Если в нем только кнопка Ok код все равно выполнится.... хотя.. диалог можно закрыть - тогда ничего не отработает.
    Диалог какой вообще? стандартный Prompt или Dialogbox?
     
  8. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    наверное, как-то так:

    используйте событие PostOpen,
    вызвать NotesUIWorkspace.RefreshParentNote
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Не обязательно использовать ВыньАПИ. Можно нарисовать свою форму/подформу с кнопкой ОК, воткнуть ей в постопен @Command([FileCloseWindow]) (если на собаках) или Source.Close (если на ЛС), вызывать через notesUIWorkspace.DialogBox.

    Только вот действительно — а на фига?
     
  10. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    угу, извечно мучающий вопрос: зачем?
    Давайте узнаем смысл этого д-окна и какое оно?
    может это банальный msgbox, который просто надо убрать.
     
  11. PDiddy

    PDiddy Member

    Регистрация:
    29 авг 2009
    Сообщения:
    7
    Симпатии:
    0
    В библиотеке скриптов написано:
    Call ws.DialogBox(Имя формы, True, True, True, False, False, False, "Запуск агента", , True)
    (После нажатия "ОК" (3-рисунок), 2 поля в документе обновляются и плюс создается 1 поле).

    В постопене пробовал команду файлклозвиндов, тогда диалогбокс после открытия сразу закрывается, но записи не попадают (т.е. окно закрывается как dialogbox canceled).

    Что посоветуете?

    1.GIF
    2.GIF
    3.GIF
     
  12. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Посоветую показать код

    И вообще... как можно молча закрывать диалог, если у тебя предусмотрены действия пользователя? А вдруг я не захочу отправлять с листом согласования?
     
  13. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Обновлять/добавлять поля кодом после вызова Call ws.DialogBox()
     
  14. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    уже писали
    PostOpen - вызвать NotesUIWorkspace.RefreshParentNote и Source.Close
     
  15. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    А еще можно, что наиболее правильно, убрать к черту этот диалог (Call ws.DialogBox) и самому сделать:
    "После нажатия "ОК" (3-рисунок), 2 поля в документе обновляются и плюс создается 1 поле"

    1. Узнать какое поле создается и прописать туда значение.
    2. Узнать какие 2 поля обновляются и сразу вбить в них нужные значения.

    Судя по всему диалог со стандартными кнопками, а значит имена полей в диалоге совпадают с полями в форме.
    1. Открываем в дизайнере форму: "Имя формы" из ws.DialogBox.
    2. Смотрим значения полей.
    3. Прописываем нужные значения в форме документа, там где вызывается DialogBox.
    4. Комментируем строку вызова DialogBox, может скажут вернуть обратно.
    5. Пробуем и смотрим что получается.
     
  16. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Не значит!
    Все зависит от того какой метод обработки! И даже это ничего не значит :)
     
Загрузка...

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