【发布时间】:2019-06-30 06:00:21
【问题描述】:
在按钮的onclick事件中,我想用ssjs搜索一个有多个条件的notes文档。
我有一个包含几个字段的表单。现在我想找到一个注释文档,其中 field a="123" and field b="456" field c="789" and field d >"A123456" ,然后我想阅读字段 e 的内容。
如果是视图中的搜索,我会使用类似:
var tmpArray = new Array("");
var cTerms = 0;
if(viewScope.fong != null & viewScope.fong != "") {
tmpArray[cTerms++] = "(FIELD Site = \"" + viewScope.fong + "\")"
}
if(@Text(viewScope.sDate) != null & @Text(viewScope.sDate) != "") {
tmpArray[cTerms++] = "(FIELD StartDate = \"" + @Text(viewScope.sDate) + "\")"
}
qstring = tmpArray.join(" AND ").trim();
viewScope.queryString = qstring;
return qstring
如果我只有 1 个条件,我会使用 @DbLookup(仍然如何选择文档 >“A123456”?)
在 ssjs 中最好的方法是什么?
更新
尝试使用 FTSearch ,但似乎在搜索键 "FIELD d > A123456" 中,似乎不起作用
其他更新
var dc = db.FTSearch("FIELD a=123 and FIELD b =456 and FIELD d =A123456"); 似乎工作,但
var dc = db.FTSearch("FIELD a=123 and FIELD b =456 and FIELD d >A123456");没有。它给出错误:调用方法 NotesDatabase.FTSearch(string) null
发生异常【问题讨论】:
-
如果你确实写了“FIELD d > A123456”,那么只有当你有一个名为 A123456 的变量并且它包含的值大于(无论在这种情况下意味着什么)d 时,测试才会成功。你可能想要 d > "A123456"
-
这不起作用。然后我收到一条错误消息:“调用方法 NotesDatabase.FTSearch(string) null 发生异常”,当我用 = 更改 > 并删除“”它可以工作,但当然没有给出正确的结果
-
d > "A123" 不起作用,因为 A123 是一个字符串,不能与更大或更小进行比较。如果您已经在 10.0.1 上,您可以看看 DQL