在@DBLookup

时间:2019-05-22 01:08:58

标签: javascript lotus-domino

我有一个带“数量”列的多米诺骨牌视图,但是有些值是空的……并且必须是。问题是@Sum可以正常工作,直到我有一个空值,然后它停止求和。

例如:如果值是5,5,“”和5,我得到的总和是10,而不是15。

我已经将问题追溯到@DbLookup,它是当遇到空白值时停止构建返回数组。没有内置处理空值的方法。

https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/reference/r_wpdr_atfunctions_dblookup_r.html

为了使事情变得更困难,如果仅找到一个,则@dbLookup返回一个字符串;如果发现多个,则返回一个数组。如果值为5,5,“”和5,则返回2个值的数组。

var alloc = @Sum(@DbLookup(@DbName(), "SubForms",MainFrmID , "ca_ca_ca_ca_amount"));
if (isNaN(alloc)){
    return "$0.00";
}else{
    return "$" + alloc.toFixed(2);
}

有人可以帮助我重构@sum或@DbLookup以允许空值吗?不幸的是,我无法为此解决方案定义任何新功能。环境被严格锁定。清单中的值为5,5,“”和5,我需要总和为15。

3 个答案:

答案 0 :(得分:1)

我会尝试@Sum(@TextToNumber(@Trim(@Text(@DbLookup(...)))))

答案 1 :(得分:0)

我会尝试 @Sum(@Transform(@Dblookup(....

答案 2 :(得分:0)

如果@DbLookup无法满足您的需要,则您始终可以遍历文档或查看条目以构建总和。

流程大致如下:
1.获取当前数据库的句柄。
2.获取“ SubForms”视图的句柄。
3a。如果存在显示所需值的视图列,则使用以MainFrmID作为键的getAllEntriesByKey()获取视图条目集合。
-或-
3b。如果不存在显示所需值的视图列,请使用以MainFrmID作为键的getAllDocumentsByKey()获取文档集合。
4.使用getColumnValues()。get(columnNumber)访问每个视图条目中的值,或使用getItemValueDouble(fieldName)访问每个文档中的值,对集合进行迭代以汇总值。

这样,您可以轻松检测空值并将其丢弃。