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

  • Автор темы Автор темы phantom76
  • Дата начала Дата начала
можно сделать так, чтобы при попытке открыть документ из внедренного вида, открывалось вложение, а не документ.
тогда будет меньше телодвижений
 
у формы свойство Auto Launch на третьей закладке... попробуй, если понравится... или на QueryOpen наваять, чтобы файл выкладывался на диск и открывался...
 
из uidoc, создается некий дочерний UI-документ, который с первичным связан по уникальному ключу, после сохранения которого есть необходимость обновить или закрыть первоначальный (родительский) UI-документ.

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

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

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

set uidoc = workspace.EditDocument( True, doc )

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

set doc = uidoc.Document
 
спасибо!

set doc = uidoc.Document - это вариант я уже использовал.., а вот как раз обратно не нашел...
 
смысл в том, что мне нужно из текущего UI-документа организовать закрытие второго UI-документа, который тоже открыт был ранее...
пока не получается...
 
Что именно не получается?

Akupaka
Хз. А что не так? :)
 
не закрывается документ...
есть кнопка "Сохранить и закрыть" - для текущего в ней стандартная @-команда
все прочее в 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?
 
Ты по ссылке читал?

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

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

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

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

вот как раз закрытие основного документа и не удается..
дык, основной документ у тебя не в той же переменной, к которой ты применяешь Close...
 
phantom76
Я ссылку привел на практически такую же задачу. Смотрел? :)

Akupaka
У меня работает в 8-ке.
Хотя я давно и в 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

Работает. :)
 
Sub Refresh тоже в кнопке описан?

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

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