我将操作按钮'更改为',所以当某个用户按下此按钮时,我只保存Uidoc。我想删除这个文件,考虑到如果我不删除它,所有文件都将保存在ALLdocument视图中!
当我尝试删除文档(调用doc.remove)时,我收到错误消息:“在NotesUIDocument实例化时无法删除notesdocument”,所有这些都在doc的另一个操作按钮中。
另外,我想关闭NotesDocument。我也尝试过这样的事情:
@Command([movetotrash]);
@Command([emptytrash]);
@Command([fileclosewindow]) but it doesn;t work. Thank you, Samir Akhtubir
我也尝试了这样的事情:
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
noteid$ = source.document.NoteID
Delete source
Dim S As New notessession
Dim db As notesdatabase
Set db = s. currentdatabase
Dim doc As Notesdocument
Set doc = db.GetDocumentbyID(noteid$)
Call doc.Remove(True)
End Sub
但是,如果我将此代码放入刚刚创建的文档中,则会删除所有文档。然后我推入了名为“取消”的动作按钮的QueryClose,但它无效。
那么,如何删除当前文档并关闭操作按钮中的窗口?
答案 0 :(得分:1)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc as NotesDocument
'*** Get currently open document
Set uidoc = ws.CurrentDocument
'*** Save it, so we can later close it
'*** without prompt. You can also set
'*** the field SaveOptions to "0".
Call uidoc.Save()
Call uidoc.FieldSetText("SaveOptions","0")
'*** Get the backend document
Set doc = uidoc.Document
'*** Force closed the UI document
Call uidoc.Close(True)
'*** Delete the backend document
Call doc.Remove(True)
如果不起作用,请在文档上设置删除标志。我通常使用'flagDelete'并将其设置为“是”。我已将所有视图过滤到不显示此字段设置为“是”的任何文档。然后,我有一个预定的代理,它将删除所有文件,每小时一次“flagDelete”设置为“是”,或者每天一次(取决于每天处理的文档数量)。
该方法还有另一个优点。您可以从ACL中删除删除访问权限,但仍允许用户通过设置标志来“删除”特定文档。然后,由预定代理删除文档,并使用删除访问权限运行。当然,您必须修改任何不基于视图执行搜索或其他查找的代码,以排除文档。