Обновить док после вызова Dialogboxa

Dragon108

Well-known member
19.01.2010
265
0
#1
Есть документ, в нем кнопка, по этой кнопке вызывается формочка для заполнения данными (DialogBox - в этот диалог бокса вставляется другой док, собственно с полями для ввода данных).
Так вот, нужно после ввода данных в диалогбокс, обновлять исходный документ, из которого открывался этот самый диалогбокс. Как это можно сделать? Кроме как через uiworkspace и потом uidocument ничего в голову не приходит ... а так не получается, ибо под uidocument при закрытии диалогбокса лотус, соответственно, понимает документ, который подставляется в диалогбокс ... :)
 

Dragon108

Well-known member
19.01.2010
265
0
#3
Почему бы в диалог бокс не показывать

?

Ну потому что формочки разные :) в той, которая открывается в диалогбоксе, например, проставляются права доступа на документ из которого открывается диалогбокс, и эта формочка одна для всех типов документов ...
 

nayke

Well-known member
04.08.2010
310
0
#4
Ну потому что формочки разные :) в той, которая открывается в диалогбоксе, например, проставляются права доступа на документ из которого открывается диалогбокс, и эта формочка одна для всех типов документов ...
А нельзя после изменения значений переоткрывать документ?
 
13.03.2009
625
1
#5
Есть документ, в нем кнопка, по этой кнопке вызывается формочка для заполнения данными (DialogBox - в этот диалог бокса вставляется другой док, собственно с полями для ввода данных).
Так вот, нужно после ввода данных в диалогбокс, обновлять исходный документ, из которого открывался этот самый диалогбокс. Как это можно сделать? Кроме как через uiworkspace и потом uidocument ничего в голову не приходит ... а так не получается, ибо под uidocument при закрытии диалогбокса лотус, соответственно, понимает документ, который подставляется в диалогбокс ... :)
Код:
Dim currentDoc As NotesDocument
Set currentDoc = ws.CurrentDocument.Document

Dim dlgDoc As NotesDocument ' Обычно Set dlgDoc = new NotesDocument( currentDoc.parentDatabase )
' hz: конкретеные значение hz на суть не влияют, выставляются согласно контексту задачи
if ws.dialogBox( dlgDoc.Form(0) , hz , hz , hz , false , false , false , "title" , dlgDoc , hz , hz , hz) then
currentDoc.fieldA = dlgDoc.fieldB
' перенос остальных полей из диалога в документ
end if
 

Omh

Lotus team
04.07.2007
2 210
1
#6
turumbay
Я обычно так и делаю, не люблю мешать котлеты с мухами: временный документ показал в диалоге, руцями перенёс.
Всё подконтрольно и защищено от дурака (другого программера, который придумает что в диалогбоксе нужно ещё поле) :)
 

Dragon108

Well-known member
19.01.2010
265
0
#8

под uidocument при закрытии диалогбокса лотус, соответственно, понимает документ, который подставляется в диалогбокс


Добавлено:
А нельзя после изменения значений переоткрывать документ?

Ну это можно и вручную сделать, после внесения изменений из диалог бокса :) Было бы интереснее, если бы он автоматически перзагружался.
Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
 

nayke

Well-known member
04.08.2010
310
0
#9
Ну это можно и вручную сделать, после внесения изменений из диалог бокса :) Было бы интереснее, если бы он автоматически перзагружался.
Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
Сначала хотел код написать потом увидел его выше..
В приведенном turumbay коде после end if ws.CurrentDocument будет возвращать исходный документ
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#10
под uidocument при закрытии диалогбокса лотус, соответственно, понимает документ, который подставляется в диалогбокс
Не знаю... все время пользуюсь таким методом и проблем не имею.
А где ты вызываешь uidocument? не в диалоге часом?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 586
272
#11
Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
в инициализации формы дилога прописать:
Код:
Sub Initialize
...
Set wks=New NotesUIWorkspace
Set prevDoc=wks.CurrentDocument
End Sub
переменные глобальны, для формы
 
13.03.2009
625
1
#12
Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
А вот зачем диалогу знать о существовании документа, из которого его(диалог) открыли?
Если нужна инфа из текущего документа, ее нужно передать до вызова ws.DialogBox:
Код:
  ' ... заполняем поля диалога
dlgDoc.fieldB = currentDoc.fieldA
' поднимаем диалог в UI
if ws.dialogBox(dlgDoc.Form(0) , ... , dlgDoc, ... )