过滤 OData V2 服务中未正确反映的日期

问题描述 投票:0回答:2

我使用

DateRangeSelection
元素在后端选择我的数据。我选择日期“01.07.2024”。 这个值也可以在过滤器对象中找到:

Debug value of filter object

相应的服务实现收到不同的日期,我不知道为什么:

Debug service implementation

OData 服务中的

IV_FILTER_STRING
对应过滤选项卡:

( ( PurchaseOrderDate ge '20240106' ) and ( PurchaseOrderDate le '20240106' ) )

对我来说这似乎是一种奇怪的行为!

odata sapui5 sap-fiori sap-gateway
2个回答
0
投票

尝试使用下面的过滤器,将日期作为 js 日期对象传递。

new sap.ui.model.Filter({
        path: "YOUR_DATE_FIELD_TO_FILTER",
        operator: sap.ui.model.FilterOperator.BT,
        value1: new Date("01.07.2024"),
        value2: new Date("01.07.2024")
})

0
投票

在提供的 OData V2 $metadata 中,确保实体属性

PurchaseOrderDate
的类型为
Edm.DateTime
并用
sap:display-format="Date"
进行注释。请参阅 “日期、时间、时间戳和时区”- SAPUI5 文档

之后,每个 Filter

value1
value2
都应该是 JavaScript
Date
的实例(最好使用
sap/ui/core/date/UI5Date.getInstance
创建),但不是 字符串。

也请遵循现有的(智能)FilterBar 文档,例如“智能筛选栏”主题中的 “日期筛选字段”

© www.soinside.com 2019 - 2024. All rights reserved.