2014-11-17 4 views
1

У меня есть модуль поиска в моем приложении, который фильтрует несколько видов в зависимости от выбора пользователя.Xpages no results after FTSearch on view

Я хочу добавить диалог, если поиск не имеет результатов, вместо того, чтобы показывать пустой вид. Как я могу это сделать?

Я попытался получить 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, то вместо того, чтобы показывать представление, он должен показать диалог с сообщением.

ответ

0

getAllDocumentsByKey и fTSearch методы делают разные вещи на вид. Вы пытаетесь вернуть количество записей, в которых первый столбец соответствует критериям полнотекстового поиска, которые вы используете. Я подозреваю, что мнение не относится к этим критериям.

+0

Каким будет aproach для того, чтобы выполнить как ftSearch, так и вернуть отфильтрованные документы? –

+0

Вы ищете только результат ftsearch, а не фильтр. Таким образом, vw.ftSearch() - это метод, который вы хотите, а не getAllDocumentsByKey(). Кроме того, getCount() имеет плохую производительность. Если вы хотите проверить, есть ли какие-либо результаты, вызовите getFirstDocument() в NotesDocumentCollection, который является результатом ftSearch, и проверьте, является ли оно нулевым. Код, который у вас есть, возвращает число, а не результаты ftSearch. Чтобы получить их, вам нужно вернуть NotesDocumentCollection. –