• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

Решено Uidoc удаление и закрытие

k85

Well-known member
11.10.2011
158
0
#1
Код:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc=ws.CurrentDocument
Call uidoc.Close(True)
Call uidoc.DeleteDocument()
почему он открывает следующий документ на просмотр?
 

k85

Well-known member
11.10.2011
158
0
#3
пробую по примеру...
Examples: DeleteDocument method
Код:
Sub Click(Source As Button)
  Dim workspace As New NotesUIWorkspace
  Dim uidoc As NotesUIDocument
  Set uidoc = workspace.CurrentDocument
  If Not ( uidoc.EditMode ) Then
	Call uidoc.DeleteDocument
  End If
End Sub

@alexas1,
вызовом агента "удалителя" после закрытия дока
то есть всесто удаления вызывать агент, который будет удалять именно документ, а не uidoc?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#4
цель какая - если просто удалить док из БД - так напуркуя это делать через UI?
получили unid, закрыли док, получили из БД (по unid) бэкэндовый, удалили
 

k85

Well-known member
11.10.2011
158
0
#7
@lmike,
Код:
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc=ws.CurrentDocument
Set doc=uidoc.Document
sunid = doc.UniversalID
Call uidoc.Close
Set doc = db.getDocumentByUNID(sunid)
Call doc.Remove(True)
Call ws.viewrefresh()
sunid - находит, doc находит нормально (проверяю в дебагере), закрывает, но не удаляется документ
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#9
подъем за волосы
Код:
Sub Click(Source As Button)
On Error Goto ErrH
Dim uidoc As NotesUIDocument, doc As NotesDocument, wks As New NotesUIWorkspace, db As NotesDatabase
Set db=wks.CurrentDatabase.Database
Set uidoc=wks.CurrentDocument
Set doc=uidoc.Document
Dim unid As String
unid=doc.UniversalID
uidoc.Close True
Delete uidoc
Set doc=db.GetDocumentByUNID(unid)
Call doc.RemovePermanently(True)
Quit:
Exit Sub
ErrH:
Error Err, RaiseError
End Sub
 
Симпатии: Понравилось k85

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#10
кнопка прям на форме, её можно скрыть и вызывать через JS
document.forms[0].testdel.click();
(задать в HTML пропертях имя и ID, в примере - testdel)
 
Симпатии: Понравилось alexas1

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#13
еще получение db не из дока
(на всяк случай, ибо - может реф снести) и надо помнить (тем кто не вникал в детали жизни объектов ;) ) - что инстанс doc тоже снесет
 
Симпатии: Понравилось alexas1