莲花笔记5如果视图打开,getdocumentbykey无效

时间:2012-12-20 08:11:44

标签: lotus-notes lotus-domino lotus lotusscript

Lotus Notes 5上有一个应用程序。如果视图打开,则getdocumentbykey函数不起作用。如果某个其他视图已打开或数据库已关闭,则该功能正常工作并找到该文档。即使视图是开放的,我们怎样才能使它工作?我已经给出了下面代码的一部分。谢谢。

    BillNo2 = cdoc.fieldgettext("Bill_No2")
    Set view = db2.GetView("Bill No.")
    Set doc = view.getdocumentbykey(BillNo2)
    If Not doc Is Nothing Then
        doc.DOdone = "Done"
        doc.LorryNo = cdoc.fieldgettext("Lorry_No")
        doc.TripNo = cdoc.fieldgettext("Trip_No")
        Call doc.save(True, True)
    End If

在调试时,它跳过“If Not doc is Nothing”这一行,即使有文档也会结束循环。如果视图未打开,相同的代码可以正常工作。请帮助我。感谢。

2 个答案:

答案 0 :(得分:3)

向后工作,如果fieldGetText未返回您期望的内容,则getDocumentByKey调用将失败。您是否在通话前检查了调试器中BillNo2的值?

进一步向后工作,fieldGetText不会返回你期望的原因是cdoc不是你所期望的。你是如何运行这段代码的?什么是设置cdoc的代码?既然你使用了fieldGetText,我认为它是一个NotesUIDocument,从名字猜测我敢打赌你从NotesUIWorkspace.currentDocument得到它。也许您的代码运行的上下文中的currentDocument并不是您所期望的。即,如果您的代码在视图的上下文中运行,而不是在您正在阅读的文档的上下文中,我不希望它能够工作。

答案 1 :(得分:1)

这听起来像一个错误,这完全是可能的,因为我们谈论的是13年前推出的版本。但首先要检查一些事项:

  • 确保对“帐号”视图的第一列进行排序。
  • 确保视图不是私有视图类型。

如果这些都不是真的,或者由于商业原因你无法改变这种观点,我认为Anders建议使用隐藏视图的解决方法是一个很好的想法,应该可以解决问题。