gpt4 book ai didi

javascript - SAPUI5 JS 用 OR 组合多个过滤器

转载 作者:行者123 更新时间:2023-12-03 00:55:11 26 4
gpt4 key购买 nike

我想将多个过滤器与 or 组合起来用于我的 OData 请求。如果我单独尝试,这些过滤器工作得很好。现在我需要将它们结合起来。这些是单个过滤器(aFilterBetween、aFilterLeftBorder、aFilterRightBorder):

var aFilterBetween = [];
aFilterBetween.push(new Filter({
filters: [
new Filter("StartDate", "GE", calenderStartDate),
new Filter("EndDate", "LE", calenderEndDate)
],
and: true
}));

var aFilterLeftBorder = [];
aFilterLeftBorder.push(new Filter({
filters: [
new Filter("StartDate", "LT", calenderStartDate),
new Filter("EndDate", "GT", calenderStartDate)
],
and: true
}));

var aFilterRightBorder = [];
aFilterRightBorder.push(new Filter({
filters: [
new Filter("StartDate", "LT", calenderStartDate),
new Filter("EndDate", "GT", calenderEndDate)
],
and: true
}));

这三个过滤器应与结合使用,以便结果将显示与这三个过滤器之一匹配的所有内容。这三个过滤器的组合过滤器必须用于我的 OData 请求,如下所示...

oDataModel.read("/Initiatives", {
filters: ***here has to be the filter***,
urlParameters: {
"$top": "50",
"$select": "StartDate,EndDate"
},
success: function(oData, oResponse) {
... }

我尝试使用 and: false 连接三个过滤器(这里甚至只有两个),但不知何故它对我不起作用:

var aFilterCombined = [];
aFilterCombined.push(new Filter({
filters: [
aFilterBetween,
aFilterLeftBorder
],
and: false
}));

有什么想法吗?

最佳答案

试试这个:

var oFilterCombined = new Filter({
filters: [
oFilter1,
oFilter2
],
and: false
});

还有其他过滤器,我会创建过滤器对象而不是插入数组,并使用 sap 常量而不是过滤器运算符的字符串( https://sapui5.hana.ondemand.com/1.54.8/#/api/sap.ui.model.FilterOperator ):

var oFilterSingle= new Filter({
filters: [
new Filter("XXX", FilterOperator.EQ, "bla"),
new Filter("YYY", FilterOperator.EQ, "blub")
],
and: true
});

读者希望这样:

oDataModel.read("/Initiatives", {
filters: oFilterCombined,
urlParameters: {
"$top": "50",
"$select": "StartDate,EndDate"
},
success: function(oData, oResponse) {
...
}

请注意:

问题可能不是 ui5 代码,而是后端。如果这不起作用,请发布您的浏览器发送的批处理。

如果您使用的是 ABAP 后端以及 SEGW 生成的 OData 服务:映射无法区分 andor 过滤器!您需要手动实现!

关于javascript - SAPUI5 JS 用 OR 组合多个过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52869504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com