Запуск кода на любой выбранной базе из меню клиента...

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

  1. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Всем привет! :(

    Возник вопрос, возможно кто-нить сталкивался с вариантами реализации, и сможет навести на путь решения...

    в общем, задача примерно такова, реализовать возможность запуска некоего кода на любом notes-объекте который выделен на УИ в текущий момент.
    Например, кто работал с продуктами Teamstudio, к примеру, Configurator, то знают, что запускаемый продукт может получить текущую в данный момент времени БД.
    Я предполагаю, что подобным образом можно получить доступ и к текущему УИ-виду, выделенному документу, и т.п.
    Например, сделать такой себе диалог, который бы показывал доступ к текущему документу в диалоге...
    Но вот не знаю пока каким образом это можно сделать, если конечно можно :)
    Если кто-то сталкивался с информацией, которая может помочь понять можно ли это реализовать, подскажите, пжлста, где она есть :D
    Возможно, кто-то знает ключевые слова, по которым можно найти подобную информацию.
    Буду благодарен за любые подсказки :)

    Спасибо!
     
  2. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Можно :)
    Под speed кнопкой ставишь что-то вроде

    Код (Text):
    DBHServer := @Environment("DBHServer"); 'путь к супербазе :)
    DBHReplicaID := @Environment("DBHReplicaID"); 'реплика супербазы :)
    @If(DBHReplicaID = ""; @Return(@Prompt([Ok]; "не прошло"; "однако")); "");

    TargetServer := @Subset(@DbName; 1);
    TargetPath := @Subset(@DbName; -1);

    @Environment("DBHTargetServer"; TargetServer); 'сервер обрабатываемой базы передаём через ENV
    @Environment("DBHTargetPath"; TargetPath); 'путь обрабатываемой базы передаём через ENV
    @Environment("DBHAction"; "ТУТ_ИМЯ_ОПЕРАЦИИ");

    @PostedCommand([FileOpenDBRepID]; DBHReplicaID; DBHServer;"ТУТ_ИМЯ_VIEW";"";"0";"1")
    В супербазе во View по имени "ТУТ_ИМЯ_VIEW" в QueryOpen делаешь обработку передаваемых параметров и ставишь Continue = False

    У меня в DBH так сделано, я её выкладывал раньше, так что там можно примерно посмотреть...

    Да, и там же на QueryOpen можешь взять CurrentDocument/CurrentView - всё будет как надо из Target базы.
     
  3. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    спасибо, поковыряю в эту сторону...

    если у кого-то есть другие примеры, то они не будут лишними :)
     
Загрузка...

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