强制使用SSJS重新计算文档上的计算字段

时间:2014-06-04 15:45:09

标签: xpages lotus-notes computed-field

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

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

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

如果需要的话,我会重新创建计算,但我只是想知道在开始这个过程之前是否有一种更明智的方法来实现这个目标?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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