因此,我有两个过滤器数组,我不想仅仅用UI和/或运算符来填充和让UI5选择/分组各自的属性,而是要在两个过滤器数组之间执行AND。
我尝试传递两个过滤器数组,并添加和。但这不起作用。
var kFilter = new Filter({
filters: [
dFilters,
bFilters
],
and: true
});
答案 0 :(得分:1)
var aFilter = [];
var aOrFilter = [];
var aAndFilter = [];
//Create filter array for OR condition
aOrFilter[
new sap.ui.model.Filter("Property1", sap.ui.model.FilterOperator.EQ, sValue),
new sap.ui.model.Filter("Property2", sap.ui.model.FilterOperator.EQ, sValue)
];
//Create filter array for AND condition
aAndFilter[
new sap.ui.model.Filter("Property3", sap.ui.model.FilterOperator.EQ, sValue),
new sap.ui.model.Filter("Property4", sap.ui.model.FilterOperator.EQ, sValue)
];
//Concatinating both filter arrays with AND condition
aFilter = new sap.ui.model.Filter([
new sap.ui.model.Filter(aOrFilter, false), //Filters get OR codition
new sap.ui.model.Filter(aAndFilter, true) //Filters get AND condition
], true); //Concatinating both with AND condition
结果:
(Property1 EQ "XXX" OR Property2 EQ "XXX") AND (Property3 EQ "XXX" AND Property4 EQ "XXX")