【问题标题】:Forcing Computed Fields on a Document to Recalculate using SSJS使用 SSJS 强制文档上的计算字段重新计算
【发布时间】:2014-06-04 15:45:09
【问题描述】:

有没有办法强制文档计算字段从 Xpage 中重新计算,而不保存文档?

我在 Notes 数据库上有一个包含许多计算字段的子表单,这些字段包含一些涉及时间范围计算的复杂计算。该数据库既可用作 Web 应用程序,也可用作客户端应用程序。对于包含字段的自定义控件,我不想重新创建所有计算,因此将计算文本值绑定到文档上的计算表单。

在子表单上,当您通过输入信息进行选项卡时,计算字段会重新计算。在自定义控件上,我有一个刷新按钮,用于保存数据源并对数据输入部分进行部分刷新,但这可能会导致一些错误或文档保存冲突。

如果需要,我将重新创建计算,但我只是想知道在开始该过程之前是否有更巧妙的方法来实现这一点?

【问题讨论】:

    标签: xpages lotus-notes computed-field


    【解决方案1】:

    DominoDocumentData 对象具有 computeDocument() 和 doComputeDocument() 方法。我不确定他们在做什么。如果您在 Local\xsp 下查看 XPage / Custom Control 的类,您可以看到它们。使用数据源的变量名,例如document1,您将能够获取 DominoDocumentData 对象并将它的大小写到该类。

    【讨论】:

    • Paul,我查找了 DominoDocumentData 对象但找不到。这是我采取的路径:切换到包资源管理器视图,展开 Local\xsp 文件夹,展开 XPageWithDocDataSource.java,很失望没有看到对 DominoDocumentData 的任何引用!我错过了什么?我在走正确的道路吗?错误的观点或观点?
    • 尝试用一个 dominoDocument 数据源创建一个空白 XPage,它应该有它。或者使用设计器搜索应该找到它。或者,Javadoc 似乎在此处公开可用 public.dhe.ibm.com/software/dw/lotus/Domino-Designer/JavaDocs/…
    • 啊,现在明白了。我停得太早了。需要打开XPageWithDocDataSource.java,在import语句上右击类,然后Open Type Hierarchy...很有用,谢谢。
    【解决方案2】:

    没有“文档上的计算字段”之类的东西。一个文档完全不知道它的项目是如何获得它们的值的。 计算字段存在于表单上。您有 2 个选项(您可以使用一个或两个)。

    • 在定义 documentDatasource 时,您可以指定公式在加载和/或保存时执行。
    • 使用 NotesDocument 的 document.computeWithForm 方法

    【讨论】:

      猜你喜欢
      • 2014-04-17
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多