xpages + 在 2 个日期之间的视图面板中搜索
xpages + Search in a view panel between 2 dates
我有一个包含一些数据的视图,以及一个包含每个文档创建日期的列。我想使用 3 个输入字段创建搜索功能:ip_address、StartDate、EndDate。搜索的结果应该是ip_address并且在2个日期内的所有文档
我用这个link
Xpages search between 2 dates
但是 return 我这个错误
Unexpected runtime error:The runtime has encountered an unexpected error.
com.ibm.xsp.FacesExceptionEx: Notes error: Relational operators are not supported in text fields Notes error: Relational operators are not supported in text fields
enter image description here
这是搜索查询的代码:
var search = "";
var formatter = new java.text.SimpleDateFormat("dd/MM/yyyy");
if (viewScope.StartDate) {
search += ' AND [imp_dateTrace] >=' + formatter.format(viewScope.StartDate);
}
if (viewScope.EndDate) {
search += ' AND [imp_dateTrace] <=' + formatter.format(viewScope.EndDate);
}
if (viewScope.imp) {
search += ' AND [imp_IP]="' + viewScope.imp + '"';
}
if (viewScope.agence) {
search += ' AND [imp_emplacement]="' + viewScope.agence + '"';
}
viewScope.searchquery = search;
return viewScope.searchquery.substring(5);
您没有像 answer 中那样使用 [_creationDate]
,而是使用您自己的字段 imp_dateTrace
。
如果字段 imp_dateTrace
仅包含文档的创建日期,则改用 [_creationDate]
。 [_creationDate]
将起作用,因为您不依赖于文档中的字段类型。
如果您必须使用字段 imp_dateTrace
,请确保您的字段在文档中存储为日期字段。
如果是这种情况,则数据库的 UNK table 可能会将此字段列为文本字段。如果它最初创建为文本字段,后来更改为日期字段,则可能会发生这种情况。在这种情况下,您必须修复 UNK table:
- 删除 FT-index
- compact 带选项 -c 的数据库(复制样式)
- 创建新的 FT 指数。
还要确保您的查询不以“AND”开头。您的问题中显示的代码就是这种情况。
我有一个包含一些数据的视图,以及一个包含每个文档创建日期的列。我想使用 3 个输入字段创建搜索功能:ip_address、StartDate、EndDate。搜索的结果应该是ip_address并且在2个日期内的所有文档
我用这个link Xpages search between 2 dates
但是 return 我这个错误
Unexpected runtime error:The runtime has encountered an unexpected error.
com.ibm.xsp.FacesExceptionEx: Notes error: Relational operators are not supported in text fields Notes error: Relational operators are not supported in text fields enter image description here
这是搜索查询的代码:
var search = "";
var formatter = new java.text.SimpleDateFormat("dd/MM/yyyy");
if (viewScope.StartDate) {
search += ' AND [imp_dateTrace] >=' + formatter.format(viewScope.StartDate);
}
if (viewScope.EndDate) {
search += ' AND [imp_dateTrace] <=' + formatter.format(viewScope.EndDate);
}
if (viewScope.imp) {
search += ' AND [imp_IP]="' + viewScope.imp + '"';
}
if (viewScope.agence) {
search += ' AND [imp_emplacement]="' + viewScope.agence + '"';
}
viewScope.searchquery = search;
return viewScope.searchquery.substring(5);
您没有像 answer 中那样使用 [_creationDate]
,而是使用您自己的字段 imp_dateTrace
。
如果字段 imp_dateTrace
仅包含文档的创建日期,则改用 [_creationDate]
。 [_creationDate]
将起作用,因为您不依赖于文档中的字段类型。
如果您必须使用字段 imp_dateTrace
,请确保您的字段在文档中存储为日期字段。
如果是这种情况,则数据库的 UNK table 可能会将此字段列为文本字段。如果它最初创建为文本字段,后来更改为日期字段,则可能会发生这种情况。在这种情况下,您必须修复 UNK table:
- 删除 FT-index
- compact 带选项 -c 的数据库(复制样式)
- 创建新的 FT 指数。
还要确保您的查询不以“AND”开头。您的问题中显示的代码就是这种情况。