послать сообщение Notesdocument -> Notesdocument

  • Автор темы Vvv
  • Дата начала
V

Vvv

Подскажите пожалуйста как можно послать сообщение от одного NotesDocument другому

конечная задача я делаю аналог DialogBox мне надо при закрытии дочернего NotesDocument сообщить об закрытии родительскому
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
473
конечная задача я делаю аналог DialogBox мне надо при закрытии дочернего NotesDocument сообщить об закрытии родительскому
мне казалось, что просто код отработает дальше ;), если вызывать такой DialogBox
зачем аналог:
- модальность как обеспечить
-как бороться с глюкавым UI нотусов
у меня ощущения, что вы изобретаете себе проблемы, не изучив платформы

диалог-боксы можно делать через... java, но вы утверждали (в др. топике) что тока LS
 
V

Vvv

ищите очереди
пожалуйста ткните точней про очереди в LS

>у меня ощущения, что вы изобретаете себе проблемы, не изучив платформы
у меня требования

только на LS реализовать диалог который отображает таблицу с переменным количеством строк
пользователь может выбрать N строк и мой диалог должен вернуть их в вызывающий документ

мой диалог и вызывающий документо существуют только в uidoc виде, сохранять doc на диск запрещенно (у меня есть рабочая версия если вызывающий документ сохранен в базу)

одно из требований было использовать DialogBox, я смог убедить что внутри DialogBox только на LS динамическую таблицу с выбором не построить.

сейчас пытаюсь решить проблемму как вернуть строку их диалога в вызывающий документ (который не сохранялся в базу те найти его по unid и сохранить в какой либо item я не могу)
решил использовать профайл
сохраняю возращаемую строку в профайл но надо как то сказать вызывающему документу чтобы ог прочел профайл
 
N

nvyush

Гляньте Call notesUIWorkspace.RefreshParentNote( ) — может натолкнёт на мысль...
Кстати, можно ведь в диалоге открыть не отдельный, а тот же самый документ. Тут кстати мелькала база с таблицей на ЛС, поищите.

Вот кстати: link removed
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Да даже если отдельный документ в параметрах указывать, то на диск его никто не заставляет сохранять.
 
V

Vvv

Кстати, можно ведь в диалоге открыть не отдельный, а тот же самый документ. Тут кстати мелькала база с таблицей на ЛС, поищите.

спасибо за идеи, тотже самый не подходит (хотя идея отличная)
клиент будет править стандартный почтовый template и родительский документ для моего диалога calendar (appointments, meetings and todo)

сейчас смотрю пример таблицы по ссылки
у меня есть несколько примеров и я их все попробовал (основная проблемма динамиечски перестраивать таблицу после 10-30 перестроений notes падает хотя один из методов что я нашел работает стабильно)
 
V

Vvv

>Да даже если отдельный документ в параметрах указывать, то на диск его никто не заставляет сохранять.

на диск его приходиться сохранять что бы вернуть значения
родитель созарняет на ребенке свой unid
потом Set pdoc = db.GetDocumentByUNID(unid)
затем ребенок сохраняет нужные значения на родители

GetDocumentByUNID работает только если документ существует в базе
 
O

Omh

[не по теме]
Vvv, без цитирования тяжело понять, где реплика, на которую ты отвечаешь, а где, собственно сам ответ
[/не по теме]
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Откуда вернуть значения?
Мы про диалогбокс говорим или нет?
 
N

nvyush

Если пользоваться "родной" диалоговой кнопкой ОК, то
Код:
flag = notesUIWorkspace.DialogBox( ... )
if flag then
'чтение очереди
end if

Если кнопка самописная, то в ней call ws.RefreshParentNote( ), а в родительском uidoc можно прочитать очередь в QueryRecalc

Про очереди тут:
link removed
 
V

Vvv

спасибо за ссылку про очереди, воспользоваться не удасться так как код должен работать под win/linux/blackberry
я понимаю что notes.dll в том или ином виде есть на всех платформах но хотелось бы не опускаться до CAPI


воспользоваться родным диалогом Notes я не могу так как в нем невозможно динамически перестраивать таблицу
 
T

TIA

Vvv
На сколько я понял, в родительском документе у вас что-то подобное:
Код:
Set uidoc = Ws.EditDocument(...)
Тогда отловить закрытие дочернего uidoc можно через
Код:
On Event QueryClose From uidoc Call MyChildDocCloseHandler

sub MyChildDocCloseHandler(Source as NotesUIDocument)
...
end sub

Возможно, удобнее вместо QueryClose отлавливать QuerySave или PostSave в зависимости от ваших условий.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
473
ничё не понял...
код не будет работать под перечисленными платформами, без использования "хаков"
потомучта обмен между UI сучностями нотусов индусы не реализовали (в общем смысле)
не понятно и перечиление платформ, мало того, что они принципиально разные, дык еще и линуха бывают разные (ИБМ не сподобилось сделать клиента по человечьи) и нотуса элементарно могут не стартовать...
хотя под линухами можно пущать тот же виндозный клиент (с нек. допиливаниями)
блекбери - это ваще не интел проц... и какой там клиент ;) ?
а не объясненные "не хочу" и "только LS" вызывают странные ассоциации ;) (неуж-то секта) :(
 
X

Xalet

Если надо выбрать из вьюшки несколько строк и вернуть на форму, то решается одним @Prompt ом, или я не так понял задачу.
Еще вариант с дайлогбоксом и встроеной вьюшкой.
 
X

Xalet

Почитал соседнюю темку с динамическими таблицами. Если из своей таблицы сделать выборку, то все выбраные строки сохранять в поле со множественными значениями, такое же как и на основной форме. И через дайлогбокс все должно неплохо работать.
 
V

Vvv

>блекбери - это ваще не интел проц... и какой там клиент ?
как я понимаю там web клиент, у меня ее нет

>а не объясненные "не хочу" и "только LS" вызывают странные ассоциации (неуж-то секта)
нет у клиента N тысяч десятков пользователей и менять что либо кроме почтового шаблона они не согласны (понять их можно если скажем 20k (на самом деле больше) пользователей и явно у кого что то дполнительное не поставиться корректно)
 
K

Klido

и менять что либо кроме почтового шаблона
достаточно жестко - 20К измененных ящиков....
я вот тоже не совсем понял зачем так сложно, если
решается одним @Prompt ом, или я не так понял задачу.
Еще вариант с дайлогбоксом и встроеной вьюшкой.
 
V

Vvv

На сколько я понял, в родительском документе у вас что-то подобное:
Код:
Set uidoc = Ws.EditDocument(...)
Тогда отловить закрытие дочернего uidoc можно через
Код:
On Event QueryClose From uidoc Call MyChildDocCloseHandler

sub MyChildDocCloseHandler(Source as NotesUIDocument)
...
end sub

Возможно, удобнее вместо QueryClose отлавливать QuerySave или PostSave в зависимости от ваших условий.

TIA да я создаю документ через EditDocument

я пытался сделать
Код:
в globals
Dim uidialog As NotesUIDocument


Sub MyChildDocCloseHandler(Source As Notesuidocument, Continue As Variant)
Messagebox "test"
End Sub


код на кнопке
Set uidialog= workspace.ComposeDocument( "", "", "DEMO" )
On Event QueryClose From uidialog Call MyChildDocCloseHandler

при закрытии дочерней формы msgbox не вызываеться
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!