Javascript Ui5 SearchField-来自多个属性名称的建议?
我已将搜索帮助Javascript Ui5 SearchField-来自多个属性名称的建议?,javascript,odata,sapui5,abap,Javascript,Odata,Sapui5,Abap,我已将搜索帮助O2USERNAME作为oData服务导入ABAP。 我希望在UI5中有一个实时建议字段,但我一次只能使用一个过滤器。目标是从Bname、NameLast和NameFirst获得建议 SAP说明中指出: “或_表达式”中的所有属性必须具有相同的名称 有效:“命名eq‘Sven’或命名eq‘Hugo’” 无效:“名称eq'Sven'或年龄eq 20” 但这正是我所需要的。有没有一个解决办法 以下是我的看法: 和我的控制器: onSuggest: function (oEvent)
O2USERNAME
作为oData服务导入ABAP。
我希望在UI5中有一个实时建议字段,但我一次只能使用一个过滤器。目标是从Bname
、NameLast
和NameFirst
获得建议
SAP说明中指出:
“或_表达式”中的所有属性必须具有相同的名称
有效:“命名eq‘Sven’或命名eq‘Hugo’”
无效:“名称eq'Sven'或年龄eq 20”
但这正是我所需要的。有没有一个解决办法
以下是我的看法:
和我的控制器:
onSuggest: function (oEvent) {
var searchField = oEvent.getSource(),
sQuery = searchField.getProperty("value"),
filters1,filters2 = [],
oBinding = searchField.getBinding("suggestionItems");
filters2 = new Filter({
filters1: [
new Filter("Bname", FilterOperator.Contains, sQuery.toUpperCase())
, new Filter("NameLast", FilterOperator.Contains, sQuery) ,
, new Filter("NameFirst", FilterOperator.Contains, sQuery)
],
and: false
});
oBinding.filter(filters2);
oBinding.attachEventOnce('dataReceived', function (parentEvent) {
searchField.suggest();
}.bind(null, oEvent));
}
来自具有正确biuld筛选器的后端的错误为: 出现以下问题:HTTP请求失败500,内部服务器错误,{“错误”:{ “代码”:“/IWBEP/CM\U MGW\U RT/032”, “信息”:{ “郎”:“德”, “值”:“Interner Fehler aufgetreten.Wenden您是系统管理员” }, “内部错误”:{ “申请”:{ “组件id”:“removedByMe”, “服务名称空间”:“我的名称空间”, “服务id”:“我的服务”, “服务版本”:“0001” }, “交易ID”:“0BE63D492E4D0210E005CF86AE1FC269”, “时间戳”:“20190621120505.9381020”, “错误解析”:{ “SAP_事务”:“对于后端管理员:在SAP网关中心系统上运行事务/IWFND/ERROR_日志,并搜索具有上述时间戳的条目以获取更多详细信息”, “SAP注释”:“请参阅SAP注释1797736了解错误分析()” }, “错误详细信息”:[{ “代码”:“/IWBEP/CX\u MGW\u TECH\u异常”, “消息”:“Interner Fehler aufgetreten.Wenden Sie sich an den Systemadministrator”, “propertyref”:“, “严重性”:“错误”, “目标”:“”} ]} } }
/IWFND/ERROR_LOG揭示了上述注意事项每种类型的过滤器是否可能有多个文本片段? 我的意思是,你能说NameFirst包含“Sven”或“Hugo”或NameLast包含“LastName”或“LastName2”吗 如果是,我将不得不调整我的答案,如果不是: 您的
或过滤器1
,或过滤器2
,或过滤器3
不应该是数组,因为它们每个都包含一个过滤器对象
第二,filter.push部分有一个小错误。在创建“final”过滤器时更精确
创建包含多个筛选规则的筛选时,允许使用以下符号:
new sap.ui.model.Filter(aFilters, bAnd);
注意,这里的过滤器是一个过滤器对象数组
但是你给出了4个参数,我认为这是行不通的
回到您的代码,一旦您将orFilter数组更改为对象,请尝试以下操作:
filter.push(new sap.ui.model.Filter({
filters: [orFilter3, orFilter2, orFilter1], // equals aFilters in previous code sample
and: false // equals bAnd in previous code sample
})
);
对于每种类型的过滤器,是否可能有多个文本片段? 我的意思是,你能说NameFirst包含“Sven”或“Hugo”或NameLast包含“LastName”或“LastName2”吗 如果是,我将不得不调整我的答案,如果不是: 您的
或过滤器1
,或过滤器2
,或过滤器3
不应该是数组,因为它们每个都包含一个过滤器对象
第二,filter.push部分有一个小错误。在创建“final”过滤器时更精确
创建包含多个筛选规则的筛选时,允许使用以下符号:
new sap.ui.model.Filter(aFilters, bAnd);
注意,这里的过滤器是一个过滤器对象数组
但是你给出了4个参数,我认为这是行不通的
回到您的代码,一旦您将orFilter数组更改为对象,请尝试以下操作:
filter.push(new sap.ui.model.Filter({
filters: [orFilter3, orFilter2, orFilter1], // equals aFilters in previous code sample
and: false // equals bAnd in previous code sample
})
);
并且可以使用Bname O2usernameSet进行过滤,或者在Bname O2usernameSet中进行过滤?$filter=startWith(Bname,'BnameOfMe')或startWith(Bname,'BnameofSomeone'))&$format=JSONY您可以将不同的文本片段组合在一起,并且-通过此操作,我可以在Gatewa客户端中生成我不想要的实体是的,你说得对,实际上这是早期版本之一。现在筛选器是正确的,但我从后端收到一个错误:HTTP请求失败500,内部服务器错误,{“错误”:{“代码”:/IWBEP/CM_MGW_RT/032“,…}导致SAP Note 1797736–我不是这类错误的专家,您能将整个服务器错误包括在内吗?该消息可能会提供更多信息,因为出现此错误可能有多种原因:服务器关闭-后端执行的功能不正确-…后端implemetaion是导入的值Help,因此没有修改n在那里,我在问题中包含了完整的错误,可以使用Bname O2usernameSet进行过滤,也可以在Bname O2usernameSet中进行过滤?$filter=StartWith(Bname,'BnameOfMe')或StartWith(Bname,'BnameofSomeone'))&$format=JSONY您可以将不同的文本片段组合在一起,并且-通过此操作,我可以在Gatewa客户端中生成我不想要的实体是的,你说得对,实际上这是早期版本之一。现在筛选器是正确的,但我从后端收到一个错误:HTTP请求失败500,内部服务器错误,{“错误”:{“代码”:/IWBEP/CM_MGW_RT/032“,…}导致SAP Note 1797736–我不是这类错误的专家,您能将整个服务器错误包括在内吗?该消息可能会提供更多信息,因为出现此错误可能有多种原因:服务器关闭-后端执行的功能不正确-…后端implemetaion是导入的值Help,因此没有修改n在那里,我在问题中包含了全部错误