Как можно динамически вызвать процедуру из библиотеки?

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

  1. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    появилась потребность вызвать динамически процедурку из библиотеки, напрямую вызвать не могу. т.к. нижние библиотеки скрыты, если бы была функция все понятно - через Execute...
    а как быть в случае SUB ?
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а какая разница - ф-ция или процедура? Вы же вызываете код из либы, напишите в экзекьюте юз либы и вызов процедуры.
     
  3. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    спасибо! так и сделаю! ;)
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Растолкуй, что значит "скрытые" и чем они так закрыты, что из них нельзы вызвать функцию/процедуру?
    Если функция объявлена приватной, то ее и Execute не вытянет.
    А, если не объявлена, то и без Execute вызвать можно, главное знать ее систаксис.
     
  5. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    все просто, исходный код библиотек базового уровня скрыт дизайном, присутствует только в откомпилированном виде, далее идет 2-3 уровня библиотек с открытым кодом, из них соответственно пытаюсь запустить процедуры и функции или объявлять классы объявленные в них. Если я уже в своем коде пишу напрямую use имя_библиотеки, а в теле вызываю ее компонент, то при компиляции возникает ошибка, указывающая на библиотеки нижнего уровня, нет исходного кода.

    Через Execute все получилось.
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Ух ты! А что за версия? В 6-7 такой проблемы не наблюдалось, на сколько помню.
     
  7. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    версия 8.5.1, там изначально дизайнер все эти библиотеки подсвечивает как с отсутствующими элементами
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    *надо запомнить* Знач надо скрывать выгрузкой кода в инклуды...
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Есть свои грабли. Насколько я помню, если есть библиотеки А, В, С, причём В и С включают А (Use A), то в библиотеке Е Use B + Use C будет вызывать ошибку для инклудной A (для неинклудной А всё норм). Хотя м.б. в 8.5.1 поведение изменилось, не проверял.
     
  10. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    А можно пояснить на примере?

    Мой пример такой, есть библиотеки A,B,C , исходный код библиотеки А скрыт(удален) и базы, в библиотеке B используется А (use A) , в С - "use B". Далее, например пишу свою библиотеку , где делаю "use C", при сохранении появляется ошибка, указывающая на отсутствие классов библиотеки A при компиляции. Тоже самое, при внесении изменений в библиотеку С, сохранить их можно, при компиляции есть ошибки указывающие на объекты из А.
    А вот например акцию использующую "С" мне создать удалось для формы, по-изучаю вопрос в дальнейшем, не все пока мне в нем ясно.
     
  11. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Код (LotusScript):
    %INCLUDE "myfilepath.lss"
     
Загрузка...

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