sapui5过滤器基于isNull或isNotNull

时间:2017-03-27 12:40:55

标签: filter null sapui5

我需要显示列数据为NullNOT Null的所有数据,这类似于SQL运算符ISNULL。我尝试使用sap.ui.model.filteroperator但没有对NULL进行任何比较。如果您知道解决方案,请提供帮助。

4 个答案:

答案 0 :(得分:1)

正如@Prashob所说,你可以使用过滤器结构。您也可以将它与“null”关键字一起使用。例如:

oTable.getBinding("items").filter([new Filter("property", "EQ", null)])

或者在XML视图中:

<Table items="{
    path: '/collection', 
    filters: [{path: 'property', operator: 'EQ', value1: null}]
}">

如果您使用的是JSONModel,那么这将没有任何问题。如果您使用的是OData服务,那么它取决于后端。通常,它应该工作(例如,请参阅Northwind服务;它支持空比较:http://services.odata.org/Northwind/Northwind.svc/Customers?$ filter = Region%20eq%20null);底层实现应该知道将OData过滤器转换为适当的WHERE子句(即IS NULL而不是= NULL

答案 1 :(得分:1)

我建议您将VDM视图的列投影到新的计算属性。将基于isnull函数的值转换为空字符串。

if(isnull("Column"),'',"Column")

答案 2 :(得分:0)

您可以使用Filter

例如,

  1. EQ :新过滤器( your_path FilterOperator.EQ,“”); //仅显示值等于的字段为空
  2. NE :新过滤器( your_path FilterOperator.NE,“”); //仅显示值不等于的字段

答案 3 :(得分:0)

字符串数据类型可以保存 null"" 值 因此取决于您是否要同时过滤 您需要查询两者,即

oTable.getBinding("items").filter([
new Filter("property", "EQ", null), 
new Filter("property", "EQ", "")
])

非字符串数据类型: 只能容纳 null,因此您可以查询

oTable.getBinding("items").filter([new Filter("property", "EQ", null)])