点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
如何取消sap.ui.model.Filter?
我知道例如sap.ui.model.FilterOperator" EQ"与" NE"相反,而" LT"与" GE"相反,依此类推,但是如果我有 合并多个过滤器的sap.ui.model.Filter,我想否定整个组合? 或输入代码:
var path1 ='field1',value1 ='X'; //创建一个等效于OData的过滤器:$ filter = field1 eq'X' var filter1 = new Filter({ 路径:路径, value1:值, 运算符:FilterOperator.EQ }); //否定filter1,OData等效项:$ filter = field1 ne'X': var negatedFilter1 = new Filter({ 路径:路径, value1:值, 运算子:FilterOperator.NE }); var path2 ='field2',value2 ='Y'; //创建一个等效于OData的过滤器:$ filter = field2 lt'Y' var filter2 = new Filter({ 路径:path2, 值1:值2, 运算符:FilterOperator.LT }); //否定filter2,等效于OData:$ filter = field2 ge'Y': var negatedFilter2 = new Filter({ 路径:path2, 值1:值2, 运算子:FilterOperator.GE }); //用AND组合过滤器1和2 //OData等效项:$ filter = field1 eq'X'和field2 lt'Y' var CombinedFilter1AndFilter2 = new Filter({ 过滤器:[filter1,filter2], 和:正确 }); //求和CombinedFilter1AndFilter2
//否等于等效的日期:$ filter = not(field1 eq'X'and field2 lt'Y') ...?
我的意思是,可以,我可以单独组合取反的滤镜,但是在实际情况下,这将变得非常复杂且容易出错,因为我们必须遍历整个滤镜并对每个滤镜取一个负数。 他们。 我只是想在整个组合过滤器上设置一个" not"标志,或者,如果不可能,请将组合过滤器包装在新的Filter中,然后在其中设置一个not标志。
看过和读过,我认为不存在这样的not标志,对吗? 推荐的解决方法是什么? SAP UI5会建立这样的功能吗?
这是一个未解决的问题 ui.model.Filter
的NOT运算符
您好 Arnd vom Hofe ,感谢您的答复。
在我的问题中也许我没有明确指出,但是我的问题不是我不知道如何将过滤器重写为取反过滤器。 问题主要是在OData网址级别上做起来很简单的事情:
newFilterQueryOption =" not(" + oldFilterQueryOption +")";
...在UI5中完成时几乎变得可笑。 必须构建一些filterTransformation函数,该函数接受一个过滤器然后将其取反,并且在复合过滤器的情况下也必须递归完成此操作。
现在,假设我必须编写这样的函数:
-为了进行否定,我需要查看过滤器的私有/受保护成员。 至少,API文档没有列出允许UI检查过滤器的运算符,值和路径的任何方法
-虽然EQ可以与NEQ,LT(GTE,LT,LTE)(反之亦然)相抵消, 尚不清楚我们如何取反Contains,StartsWith和EndsWith。
基本上,在我看来ui5过滤器缺少一个非常简单和基本的功能。
您可以转换任何逻辑
不(a和b)
转换为
NOT a OR NOT b
,因此您的求反过滤器看起来像
一周热门 更多>