• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

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

Dragon108

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

?


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

А нельзя после изменения значений переоткрывать документ?
 
Есть документ, в нем кнопка, по этой кнопке вызывается формочка для заполнения данными (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
 
turumbay
Я обычно так и делаю, не люблю мешать котлеты с мухами: временный документ показал в диалоге, руцями перенёс.
Всё подконтрольно и защищено от дурака (другого программера, который придумает что в диалогбоксе нужно ещё поле) :)
 
Хм.. а чем не подходит?


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


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


Ну это можно и вручную сделать, после внесения изменений из диалог бокса :) Было бы интереснее, если бы он автоматически перзагружался.
Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
 
Ну это можно и вручную сделать, после внесения изменений из диалог бокса :) Было бы интереснее, если бы он автоматически перзагружался.
Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
Сначала хотел код написать потом увидел его выше..
В приведенном turumbay коде после end if ws.CurrentDocument будет возвращать исходный документ
 
под uidocument при закрытии диалогбокса лотус, соответственно, понимает документ, который подставляется в диалогбокс
Не знаю... все время пользуюсь таким методом и проблем не имею.
А где ты вызываешь uidocument? не в диалоге часом?
 
Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
в инициализации формы дилога прописать:
Код:
Sub Initialize
...
Set wks=New NotesUIWorkspace
Set prevDoc=wks.CurrentDocument
End Sub
переменные глобальны, для формы
 
Да и как взять документ в качестве uidoc, из которого открывается диалог бокс? текущим то будет тот, который подгружается в диалогбокс
А вот зачем диалогу знать о существовании документа, из которого его(диалог) открыли?
Если нужна инфа из текущего документа, ее нужно передать до вызова ws.DialogBox:
Код:
  ' ... заполняем поля диалога
dlgDoc.fieldB = currentDoc.fieldA
' поднимаем диалог в UI
if ws.dialogBox(dlgDoc.Form(0) , ... , dlgDoc, ... )
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab