Одновременное Открытие И Закрытие Форм

  • Автор темы orion
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

orion

Добрый день!
Условие: Из формы А, по нажатию кнопки, открывается создание документа типа "ответ" по форме B.
Задача: Оставшись в режиме редактирования формы B, форму А закрыть.
Как такое можно реализовать?
На @-формулах решение не очевидно.
На LS можно получить ссылку на документ родитель:

Код:
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim session As New NotesSession
Dim curdoc As NotesDocument
Dim parentdoc As NotesDocument
Dim uidoc As NotesUIDocument

Set uidoc = ws.CurrentDocument

Dim tmpParentID As String
Set curdoc = uidoc.Document
tmpParentID$ = curdoc.ParentDocumentUNID

Set db = session.CurrentDatabase
Set parentdoc = db.GetDocumentByUNID(tmpParentID$)

Но что дальше делать, тоже не совсем понятно.
 

savl

Lotus Team
28.10.2011
2 625
314
BIT
544
Нужно изменить кнопку создания ответа B.
Сохранить документ А, закрыть А, создать документ B.
 
O

orion

Нужно изменить кнопку создания ответа B.
Сохранить документ А, закрыть А, создать документ B.

Гм... Мысль! ;) Спасибо!
Рабочий вариант:
Код:
Dim ws As New NotesUIWorkspace
Dim curdoc As NotesUIDocument
Dim newdoc As NotesUIDocument

Set curdoc = ws.CurrentDocument
Call curdoc.Save
Call curdoc.Close

Set newdoc = ws.ComposeDocument("", "", "frmResponse")
 
O

orion

Вопрос попутно появился.
А как открыть документ пользователю? Чтобы не в бэкенде, а в пользовательском интерфейсе прямо открылся нужный документ?
 

savl

Lotus Team
28.10.2011
2 625
314
BIT
544
orion
ну тут много способов:
1. Двойной клик на документе =)
2. Переход по ссылке из письма/документа =)
3. получить документ (в Back) -> открыть (во front)
Help: NotesUIWorkSpace.EditDocument
 
O

orion

savl

Спасибо! :)
Работает. Вот рабочий вариант:
Код:
	Dim sessionnew As New NotesSession
Dim wsnew As New NotesUIWorkspace
Dim docnew As NotesDocument
Dim uidocnew As NotesUIDocument
Dim dbnew As NotesDatabase

Set dbnew = sessionnew.CurrentDatabase
Set docnew = dbnew.GetDocumentByUNID(tmpParentID$)
Set uidocnew = wsnew.EditDocument(True, docnew)
 

savl

Lotus Team
28.10.2011
2 625
314
BIT
544
orion
не совсем рабочий =)
если tmpParentID$ не UNID, то будет ошибка :)
 
O

orion

savl

Да, tmpParentID$ именно UNID документа. Просто я не стал описывать кусок кода, в котором берётся этот UNID.
:)
 
A

afest

попробуй сделать через URL-объект... у меня помогло
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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