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

  • Автор темы Dragon108
  • Дата начала
D

Dragon108

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

Dragon108

Почему бы в диалог бокс не показывать

?


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

nayke

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

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

turumbay

Есть документ, в нем кнопка, по этой кнопке вызывается формочка для заполнения данными (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
 
O

Omh

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

Dragon108

Хм.. а чем не подходит?


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


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


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

nayke

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

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
под uidocument при закрытии диалогбокса лотус, соответственно, понимает документ, который подставляется в диалогбокс
Не знаю... все время пользуюсь таким методом и проблем не имею.
А где ты вызываешь uidocument? не в диалоге часом?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
472
Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
в инициализации формы дилога прописать:
Код:
Sub Initialize
...
Set wks=New NotesUIWorkspace
Set prevDoc=wks.CurrentDocument
End Sub
переменные глобальны, для формы
 
T

turumbay

Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
А вот зачем диалогу знать о существовании документа, из которого его(диалог) открыли?
Если нужна инфа из текущего документа, ее нужно передать до вызова ws.DialogBox:
Код:
  ' ... заполняем поля диалога
dlgDoc.fieldB = currentDoc.fieldA
' поднимаем диалог в UI
if ws.dialogBox(dlgDoc.Form(0) , ... , dlgDoc, ... )
 
Мы в соцсетях:

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