我创建了一个基于动态视图面板的xPages自定义控件。然后我添加了2个组合框,其中填充了不同的值(States, Departments)和一个编辑框字段和一个Search按钮。然后,我编写了以下代码,将搜索字符串返回到计算出来的面板的"search in view results"。
var tmpArray = new Array("");
var cTerms = 0;
if(viewScope.categoryText1 != null) {
if ( viewScope.categoryText1.trim() != "") {
tmpArray[cTerms++] = "(FIELD State CONTAINS "" + viewScope.categoryText1 + "")";
}
}
if(viewScope.categoryText2 != null ){
if ( viewScope.categoryText2.trim() != "") {
tmpArray[cTerms++] = "(FIELD Department = "" + viewScope.categoryText2 + "")";
}
}
if(viewScope.searchString != null ) {
if ( viewScope.searchString != "") {
tmpArray[cTerms++] = "( "" + viewScope.searchString + "")";
}
}
qstring = tmpArray.join(" AND ").trim();
viewScope.queryString = qstring; // this just displays the query
return qstring // this is what sets the search property
搜索适用于编辑框字段值,但不适用于组合框生成的字符串:' field State CONTAINS "some State "'或' field Department = "some deptname"'。这些搜索字符串返回一个空视图。
列名匹配底层Notesview(编程方式和列标题)。
我认为这可能与动态视图面板显示的列名有关,但我不确定
全文搜索在文档字段中查找搜索字符串,而不是在列值中查找。
所以,确保字段State和Department包含你正在寻找的字符串。
你使用别名吗?也许你只在文档中保存State的缩写,但用户可以选择State的全名进行搜索…