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”这一行,即使有文档也会结束循环。如果视图未打开,相同的代码可以正常工作。请帮助我。感谢。
答案 0 :(得分:3)
向后工作,如果fieldGetText未返回您期望的内容,则getDocumentByKey调用将失败。您是否在通话前检查了调试器中BillNo2的值?
进一步向后工作,fieldGetText不会返回你期望的原因是cdoc不是你所期望的。你是如何运行这段代码的?什么是设置cdoc的代码?既然你使用了fieldGetText,我认为它是一个NotesUIDocument,从名字猜测我敢打赌你从NotesUIWorkspace.currentDocument得到它。也许您的代码运行的上下文中的currentDocument并不是您所期望的。即,如果您的代码在视图的上下文中运行,而不是在您正在阅读的文档的上下文中,我不希望它能够工作。
答案 1 :(得分:1)
这听起来像一个错误,这完全是可能的,因为我们谈论的是13年前推出的版本。但首先要检查一些事项:
如果这些都不是真的,或者由于商业原因你无法改变这种观点,我认为Anders建议使用隐藏视图的解决方法是一个很好的想法,应该可以解决问题。