Модификация документа через Action

  • Автор темы phantom76
  • Дата начала
A

Akupaka

можно сделать так, чтобы при попытке открыть документ из внедренного вида, открывалось вложение, а не документ.
тогда будет меньше телодвижений
 
A

Akupaka

у формы свойство Auto Launch на третьей закладке... попробуй, если понравится... или на QueryOpen наваять, чтобы файл выкладывался на диск и открывался...
 
P

phantom76

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

как можно от doc (Notesdocument) , перейти к uidoc (NotesUIDocument), для того чтобы открытый уже uidoc обновить?
 
A

abbatik

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

как можно от doc (Notesdocument) , перейти к uidoc (NotesUIDocument), для того чтобы открытый уже uidoc обновить?

Изучай матчасть. В хелпе все есть.

set uidoc = workspace.EditDocument( True, doc )

Обратная комбинация

set doc = uidoc.Document
 
P

phantom76

спасибо!

set doc = uidoc.Document - это вариант я уже использовал.., а вот как раз обратно не нашел...
 
A

Akupaka

P

phantom76

смысл в том, что мне нужно из текущего UI-документа организовать закрытие второго UI-документа, который тоже открыт был ранее...
пока не получается...
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Что именно не получается?

Akupaka
Хз. А что не так? :)
 
P

phantom76

не закрывается документ...
есть кнопка "Сохранить и закрыть" - для текущего в ней стандартная @-команда
все прочее в QuerySave:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim pdoc As NotesDocument
Dim uidoc As NotesUIDocument
Dim uipdoc As NotesUIDocument
Dim w As New NotesUIWorkspace
Dim pview As NotesView
Dim key As String
Set db=ses.CurrentDatabase
Set uidoc = w.CurrentDocument
Set doc = uidoc.Document
' ищем родительский документ заявку
Set pview = db.GetView("sortdocid")
Print "найдено представление: " & pview.Name
key = doc.GetItemValue("docid_p")(0)
Set pdoc = pview.GetDocumentByKey(key)
If pdoc Is Nothing Then
Print "Документ заявка не найден! "
Exit Sub
End If
Print "PDOC : " & pdoc.GetItemValue("Number")(0)

Call pdoc.ReplaceItemValue("WF_CurrentUser", "[Manager]")
Call pdoc.Save( True, True)
Set uipdoc = w.EditDocument(False, pdoc)
Call uipdoc.Close


End Sub


pdoc - док мне нужно еще закрыть...
моежет конечно закрывать его нужно не в QuerySave?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Ты по ссылке читал?

У тебя всё правильно.
Код:
Set uipdoc = w.EditDocument(False, pdoc)
Call uipdoc.Close
Открыл документ и сразу закрыл. Только толк какой? :)
 
P

phantom76

Ты по ссылке читал?

У тебя всё правильно.
Код:
Set uipdoc = w.EditDocument(False, pdoc)
Call uipdoc.Close
Открыл документ и сразу закрыл. Только толк какой? :)

пользователь создает\открывает документ-заявку , хочет добавить в ней коменты, которые формируются как отдельные независимые документы и отображаются в ембедет вью в основном. Жмет кнопочку "добавить комментарий" , открывается новая форма для создания документов-комментариев, пользователь ее заполняет. Жмет кнопку "Сохранить" , закрывается сохранненый документ-комментарий, и за ним должен закрыться и основной документ-заявка для которого и создавался комментарий, т.к. основной документ-заявка частично модифицируется в бек-энде из формы комментариев.

вот как раз закрытие основного документа и не удается..
 
A

Akupaka

Akupaka
Хз. А что не так?
Хз. просто не срабатывает :)
потому просил попробовать кого-то еще...

вот как раз закрытие основного документа и не удается..
дык, основной документ у тебя не в той же переменной, к которой ты применяешь Close...
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
phantom76
Я ссылку привел на практически такую же задачу. Смотрел? :)

Akupaka
У меня работает в 8-ке.
Хотя я давно и в 6-ке пробовал. Наверное тоже работало, иначе не стал бы писать. :)
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
В кнопке в (Declarations) прописал:
Код:
Dim uidoc As NotesUIDocument
В Click:
Код:
Dim ws As New NotesUIWorkspace
Dim newuidoc As NotesUIDocument
Dim doc As NotesDocument
...
Set uidoc = ws.CurrentDocument
Set newuidoc = ws.EditDocument(True, doc, False)
On Event PostSave From newuidoc Call Refresh
И добавил:
Код:
Sub Refresh(Source As NotesUIdocument)
Call uidoc.Refresh
Msgbox uidoc.Document.GetItemValue("Form")(0)
End Sub

Работает. :)
 
A

Akupaka

Sub Refresh тоже в кнопке описан?

а PostOpen заменяет тоже?..
 
Мы в соцсетях:

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