首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取包含指定字段的表单列表,有更好的方法吗?

获取包含指定字段的表单列表,有更好的方法吗?
EN

Stack Overflow用户
提问于 2013-11-04 18:38:37
回答 2查看 107关注 0票数 0

下面的代码是XPage上的一个脚本对象--我循环遍历数据库中所有表单的数组,查找包含"ACIncludeForm“字段的所有表单。我的方法可以工作,但它需要2-3秒来计算,这确实减缓了XPage的负载。我的问题是-是否有更好的方法来实现这一点。我添加了代码来检查sessionScope变量是否为null,并且只在需要时执行,第二次在页面加载时在第二次加载时执行。所以我的方法确实消耗了大量的处理器时间。

代码语言:javascript
复制
var forms:Array = database.getForms();
var rtn = new Array;
for (i=0 ; i<forms.length; ++i){
    var thisForm:NotesForm = forms[i];
    var a = thisForm.getFields().indexOf("ACIncludeForm");
    if (a >= 0){
        if (!thisForm.isSubForm()) {
            if (thisForm.getAliases()[0] == ""){
                rtn.push(thisForm.getName() + "|" + thisForm.getName() );
            }else{
                rtn.push(thisForm.getName() + "|" + thisForm.getAliases()[0] );
            }
        }
    }
    thisForm.recycle()
}
sessionScope.put("ssAllFormNames",rtn)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-05 06:20:50

一种方法是自己建立一个表单索引。例如,创建一个获取所有表单的代理(LotusScript或Java),并为每个表单创建一个文档,例如包含表单名称的字段“表单”和包含所有字段名的字段“字段”(注意32K限制)。

然后创建一个视图,该视图显示所有这些文档,并在第一列中包含“字段”字段的值,以便该字段的每个值在此视图中创建一行。

有了这样的视图,您可以简单地从您的XPage中创建一个@DbLookup。

如果表单被更改,则只需重新运行代理即可重新构建索引。@DbLookup应该非常快。

票数 2
EN

Stack Overflow用户

发布于 2013-11-04 20:14:59

将表单列表放在Java类的static字段中。它将在那里停留很长一段时间(可能直到http引导)。根据我的经验,applicationScope值在15分钟内就会消失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19774697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档