【问题标题】:Xpages no results after FTSearch on viewXpages 在查看 FTSearch 后没有结果
【发布时间】:2014-11-17 12:52:29
【问题描述】:

我的应用程序中有一个搜索模块,它根据用户的选择过滤多个视图。

如果搜索没有结果,我想添加一个对话框,而不是显示空视图。我该怎么做?

我尝试获取 rowCount(),但它似乎没有获得正确的行数,我不知道为什么。

SSJS 代码:

var vw=database.getView("vwCautareDocI");
var tmpArray = new Array("");
var cTerms = 0; 
var dateFormatter = new java.text.SimpleDateFormat( "MM-dd-yyyy" ); 

if (sessionScope.numprenum) { 
   tmpArray[cTerms++] = "(Field NumePrenume = \"*" + sessionScope.numprenum + "*\")"; 
} 

if (sessionScope.postvizat) { 
   tmpArray[cTerms++] = "(Field PostulVizat = \"*" + sessionScope.postvizat + "*\")"; 
} 

if (sessionScope.din && sessionScope.pana) {
    tmpArray[cTerms++] = "Field _creationDate >= " + dateFormatter.format(sessionScope.din) + " AND Field _creationDate <= " + dateFormatter.format(sessionScope.pana);
}


filter = tmpArray.join(" AND ").trim(); 
var vec=vw.getAllDocumentsByKey(filter , true);
return vec.getCount();

这是我用来过滤视图的过滤器。我想将此代码添加到按钮中,如果结果为 0,那么它应该显示一个带有消息的对话框,而不是显示视图。

【问题讨论】:

    标签: view xpages


    【解决方案1】:

    getAllDocumentsByKeyfTSearch 方法在视图上做不同的事情。您正在尝试返回第一列与您使用的全文搜索条件匹配的条目数。我怀疑视图没有按该标准分类。

    【讨论】:

    • 执行 ftSearch 并返回过滤后的文档的方法是什么?
    • 您只是在寻找 ftsearch 的结果,而不是过滤器。所以 vw.ftSearch() 是你想要的方法,而不是 getAllDocumentsByKey()。此外, getCount() 的性能很差。如果要检查是否有任何结果,请在 ftSearch 产生的 NotesDocumentCollection 上调用 getFirstDocument() 并检查它是否为空。您拥有的代码块返回一个数字,而不是 ftSearch 的结果。您需要返回 NotesDocumentCollection 以获取这些信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多