现在希望如果某篇文档在编辑结束后(该文档已经保存),如果某域为空,则将其删除,应该如何处理??

eino 2002-12-05 10:10:22
问题:能否在表单中删除文档

具体描述:

现在希望如果某篇文档在编辑结束后(该文档已经保存),如果某域为空,则将其删除,应该如何处理??

直接使用 call uidoc.document.remove(false)不可用,使用如下方法在操作(click)、QueryClose、Terminate、(Global) Terminate中,以下代码均不能实现。



示例:
Sub Click(Source As Button)
If doc.fieldXm(0)="" Then
If Messagebox( "联系人姓名无效,放弃这条信息吗?" ,4+64+256 ,"用户提示!!") = 7 Then
continue=False
Else
Dim unid As String
unid=doc.UniversalID
Dim delDoc As notesdocument
Call uidoc.close
Call ws.viewrefresh
Set delDoc = db.GetDocumentByUNID( unid )
Call delDoc.remove(True)
End If

End If
End Sub



错误提示:

Cannot remove NotesDocument when instantiated by NotesUIDocument

盼回复!!
...全文
16 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tianyun 2002-12-05
设定删除标志,使用定时代理删除.
回复
yalvin 2002-12-05
你是在QueryClose 中调用对后台文档操作的代码,这时前台文档还没有关闭!
试试调用前台文档的DeleteDocument 方法,将当前文档标记为删除。比如:
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
注意当你调用了这个方法后,这个uidoc 就无效了。
回复
eino 2002-12-05
to yalvin:
uidoc.deleteDocument只能在阅读方式下起作用
现在的问题是如何将一个文档从编辑方式变为阅读方式

换句话讲,就是需要完成如下代码:
If Not ( uidoc.EditMode ) Then
Call uidoc.DeleteDocument
else
'此处应该如何写??
End If
回复
eino 2002-12-05
to yalvin:

谢谢你的想法,现在问题已经解决了,关键就是先摧毁uidoc
剩下的就好办了。
回复
eino 2002-12-05
不会吧??
用户会不满意的,视图上多个东西,多难看
回复
发动态
发帖子
消息协作
创建于2007-08-27

520

社区成员

企业开发 Exchange Server
申请成为版主
社区公告
暂无公告