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

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

盼回复!!
...全文
63 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
不会吧??
用户会不满意的,视图上多个东西,多难看

536

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧