【问题标题】:lotus notes 5 getdocumentbykey not working if view is open如果视图打开,lotus notes 5 getdocumentbykey 不起作用
【发布时间】:2012-12-20 23:55:19
【问题描述】:

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”这一行,即使有文档也会结束循环。如果视图未打开,则相同的代码可以正常工作。请帮助我。谢谢。

【问题讨论】:

  • 在隐藏视图上查找具有类似选择且用户无法打开的视图?
  • 您应该考虑将 Lotus Notes 5(也许还有您的 Domino 服务器?)升级到最新版本 8.5。 Lotus Notes 5 于 1999 年推出,并于 2004 年退出。
  • 代理属性设置为在选定文档、新文档等上运行什么?
  • @AndersLindahl:非常感谢。隐藏视图起作用了。我试图进行数据库搜索作为替代方案,这使过程变慢。想到了这个主意。谢谢你的建议。
  • @PerHenrikLausten:嗯。我向客户提出了同样的建议。可能是应用程序到目前为止对他们很好:)

标签: lotus-notes lotus-domino lotus lotusscript


【解决方案1】:

向后工作,如果 fieldGetText 没有返回您所期望的,您的 getDocumentByKey 调用将失败。在调用之前,您是否在调试器中检查过 BillNo2 的值?

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

【讨论】:

    【解决方案2】:

    这听起来像是一个错误,考虑到我们谈论的是 13 年前发布的版本,这完全有可能。但首先要检查几件事:

    • 确保账单编号视图的第一列已排序。
    • 确保视图不是私有视图类型。

    如果两者都不正确,或者您出于业务原因无法更改该视图,我认为 Anders 建议的使用隐藏视图的解决方法是一个绝妙的想法,应该可以解决问题。

    【讨论】:

    • 是的,Anders 的解决方案解决了这个问题。可能是版本 5 中的一个错误。非常感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多