введите здесь описание изображения Я хотел бы реализовать sap.ui.model.Filter, у которого есть новый sap.ui.model.Filter (sPath, sap.ui.model.FilterOperator.BT, vValue1, vValue2); у меня есть 8 полей, которые я фильтрую только так, но для 2 полей мне нужно реализовать условие и: False .
https://sapui5.hana.ondemand.com/# / api / sap.ui .model.Filter
var product = comboBoxValue.products;
product.forEach(function (allproduct) {
allproduct = allproduct.toUpperCase();
var productValue1 = new sap.ui.model.Filter("PRODUCT", sap.ui.model.FilterOperator.Contains, allproduct);
filters.push(productValue1);
});
// filter the Country values
var country = comboBoxValue.locations;
country.forEach(function (allcountry) {
// allcountry = allcountry.toUpperCase();
var countryValue = new sap.ui.model.Filter("COUNTRY", sap.ui.model.FilterOperator.Contains, allcountry);
// filters.push(countryValue);
});
// filter the Status value
var status = comboBoxValue.status1;
status.forEach(function (allstatus) {
// allcountry = allcountry.toUpperCase();
var statusValue = new sap.ui.model.Filter("SUB_STATUS1", sap.ui.model.FilterOperator.Contains, allstatus);
filters.push(statusValue);
});
// filter the Change type values
var change_type = comboBoxValue.changes;
change_type.forEach(function (allchanges) {
// allcountry = allcountry.toUpperCase();
var changeValue = new sap.ui.model.Filter("CHANGE_TYPE", sap.ui.model.FilterOperator.Contains, allchanges);
filters.push(changeValue);
});
// filter the Submission type values
var sub_type = comboBoxValue.Submissions1;
sub_type.forEach(function (allsub) {
allsub = allsub.toUpperCase();
subValue = new sap.ui.model.Filter("SUB_TYPE", sap.ui.model.FilterOperator.Contains, allsub);
filters.push(subValue);
});
// filter the Manufacturing Stage
var manu_stage = comboBoxValue.stages1;
manu_stage.forEach(function (allstage) {
allstage = allstage.toUpperCase();
var stageValue = new sap.ui.model.Filter("MANUFACTURING_STAGE", sap.ui.model.FilterOperator.Contains, allstage);
filters.push(stageValue);
});
filters - это массив, который я передаю в службу oData, например
oModel6.read("/gantt", {
filters: filters,
success: function (oData, oResponse) {
// checking if its region Gantt Chart view
console.log("filtered data will come in oData ");
}
error: function(e){
}
});
теперь у меня есть шесть фильтров .pu sh (productValue1); передача после var productValue1 = new sap.ui.model.Filter ("PRODUCT", sap.ui.model.FilterOperator.Contains, allproduct); фильтруя его с помощью контрольного фильтра Sapui5. объединить фильтры. Теперь мне нужно еще 2 фильтра для диапазона дат как
for (var g = 0; g < comboBoxValue.date_type.length; g++) {
var range = new sap.ui.model.Filter(comboBoxValue.date_type[g], sap.ui.model.FilterOperator.BT, sFrom, sTo);
oFilter.push(range);
}
в этом я передаю несколько значений comboBoxValue.date_type и дату начала, дату окончания для него
Для другого фильтра его стандартный sapui5 принимает и: true (вы ссылаетесь на https://sapui5.hana.ondemand.com/# / api / sap.ui.model.Filter на эту ссылку)
, но для этого конкретного фильтра мне нужно указать and: false и дать это и : false в мой массив фильтров, называемый filters
final statement: total 8 value, где 6 - обычный стандартный фильтр с и: true и сохранение в фильтрах массив и еще 2 диапазона дат поля с dat_type want и: false и сохраните это в фильтрах array
На изображении 2 значения, которые я хочу в и: false и другие в и: true