我知道@DbColumn()
的SSJS版本具有与原始公式语言版本相同的64k限制。所以到目前为止,我改用NotesView.getColumnValues()
,相信在这里我不会遇到这样的限制。
昨天的紧急支持电话和IBM的this crash report告诉我,这显然是错误的。
有问题的代码用于在comboBox中填充selectItems控件。打开托管comboBox的页面会使服务器的http任务崩溃,然后导致整个服务器崩溃:
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:database.getView("vwInvBySupplier").getColumnValues(0);}]]>
</xp:this.value>
</xp:selectItems>
这是从视图中查找所有类别条目。我正在使用组合作为动态类别过滤器来显示在同一页面上的视图。
有什么选择可以从视图中检索所有类别条目的完整列表,即使检索的数据超过64k?
旁注:
我完全意识到,对于某些组合来说,在comboBox中显示2000多个条目可能不是一个令人信服的可用性概念,但是客户喜欢在一个位置查看所有可用条目,然后能够从该列表中进行选择。至少对于标准解决方案而言,它不是一个解决方案,它的标准面板中包含类别条目,曲折以及需要浏览大量页面的视图面板。
该应用程序在Domino 9.0.1,WinSrv 2008 / 64k上运行
最佳答案
幸运的是,JavaScript数组不限于64K。
创建一个数组var values = [];
,
使用视图导航器“遍历”视图,并将条目值添加到数组
用values.push("new value")
return values