@command([mailaddress];"entersendto";"entercopyto";"enterblindcopyto") своими руками

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

  1. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Всем привет! Второй день пытаюсь создать функционал, для выбора пользователей из NotesView БД "Справочники". Нечто вроде DialogBox-а, который позволит выбирать в удобном интерфейсе. Один в один как в кнопке "Кому" при создании почтового сообщения (пример кода):
    @Command([MailAddress];"EnterSendTo";"EnterCopyTo";"EnterBlindCopyTo").

    Создал в отдельной базе Subform с двумя Embedded Views. В одном подключил вьюшку с БД "Справочники", в другой вьюшку с исходной базы (БД "Планирование"). В-общем, пробовал два метода. Везде свои минусы.
    1. Создал кнопку во вьюхе БД "Справочник". Добавляет пользователей в нужный список, но никак с него не обновить другую встроенную Вьюху.
    2. На сабформе создал кнопку, которая запускает агент с БД "Справочники". Но этот агент не может получить выделенные документы из первой ембедвьюшки.

    Вот такая дилемма, друзья! Прошу помощи. Уж больно хочу добить то, к чему долго не приступал.
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    малосвязанные элементы УИ можно заставить взаимодействовать через очереди (Дмитрия Акулова)
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @imendan, я пытался такую штуку сделать, но по факту бесполезно.
    Сама форма прошита где-то в DLL лотуса...
    Можно вашу Справочники, если там пользователи, подключить как еще одну DA и использовать ту же [MailAddress]
    А если там не пользователи, а другие данные, я бы пошел в сторону Java.
    Нарисовал бы там 2 ListBox и пару кнопок, затем передавал бы результаты обратно.
    Через тот же LS2J или напрямую. На мой взгляд тут меньше проблем.
     
  4. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    1.
    ws.URLOpen( "javascript:document.forms[0].RefreshButton.click()")
    В кнопе - рефреш.
    Будет работать, если док не во фрейме.
    2.
    А вообще агент не нужен - на OnSelect View брать что надо из всего выделенного и писать сразу в UI док (в какойнить temp) для дальнейшей обработки (я, обычно, получаю список юнидов).
    Так что, погулял по одной и другой вьюшке, и не навязчиво получил всё, что щупал. При желании, можно обрабатывать результаты селектов реалтайм.
    3.
    Не всегда нужны синхронные акции, тогда, поместив на форму JS таймер, проверять нужное событие (напр. изменение поля) и программно давить на кнопу с нужной акцией (200 - 250мс. комфортный повтор и не грузит проц).
    Это универсально - работает и во фрейме. Хотя JS надо писать аккуратно - чтобы не было утечек памяти.
    4.
    Внешние формы на дельфях, сях и проч. (в exe или dll) вполне нормально - фри-библы, для более-менее комфортной работы с объектами Notes, есть. Да и без них один раз можно.
    5. Java - no comment, тут всё ясно.
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    а чего не довести свой Справочник до дизайна АК?
     
  6. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    @ToxaRat опоп, старожилы возвращаются :)
     

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