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

imendan

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

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

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#2
малосвязанные элементы УИ можно заставить взаимодействовать через очереди (Дмитрия Акулова)
 

savl

Lotus team
28.10.2011
2 136
105
#3
@imendan, я пытался такую штуку сделать, но по факту бесполезно.
Сама форма прошита где-то в DLL лотуса...
Можно вашу Справочники, если там пользователи, подключить как еще одну DA и использовать ту же [MailAddress]
А если там не пользователи, а другие данные, я бы пошел в сторону Java.
Нарисовал бы там 2 ListBox и пару кнопок, затем передавал бы результаты обратно.
Через тот же LS2J или напрямую. На мой взгляд тут меньше проблем.
 

alexas1

Lotus team
10.04.2014
726
145
#4
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, тут всё ясно.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
18
#5
а чего не довести свой Справочник до дизайна АК?