使用FormatDate的排序行为不正确

问题描述 投票:1回答:1

我正在使用SAP Business Objects BI4编辑一个Webi报表。

我有一个带有表格的报表,其中显示的日期格式如下。

=FormatDate([Sales Date];"dd-MMM-yyyy")

最初,销售日期维度的格式是 "mmddyyyy"。

我想通过这个格式化的日期维度按升序排列我的表,所以我只需选择我的表>右键单击>选择排序,然后我选择=FormatDate([Sales Date]; "dd-MMM-yyy")按升序排列。

我的问题是,排序行为不正确,因为结果如下。

Sales Date
----------
01-AUG-2006
----------
01-JUL-2010
----------
02-FEB-2006
----------
03-AUG-2005

如上图所示,排序似乎只按 "日 "的值进行,完全忽略了 "月 "和 "年"。

我的对象在宇宙中正确定义为 "Date"。

而且当我不使用格式化 "dd-MMM-yyy "而保持销售日期的原始格式时,排序也能正确完成。

有什么建议吗?

sorting sap business-intelligence business-objects webi
1个回答
3
投票

返回的数据类型 FormatDate 是一个字符串。这就是为什么排序会失序的原因,因为它会对字符串值而不是日期值进行排序。

你有两个选择。

  1. 使用(自定义)日期格式来格式化日期(在 格式化 部分,当您将文档放在 编辑 模式)。) 你需要使用RIA(Java小程序)来定义你自己的自定义日期格式。或者你也可以使用其中一种可用的格式。这将不会改变数据类型,而只是改变显示方式,因此排序应该没有问题。

Formatting

  1. 如果您仍然想使用RIA(Java小程序)来定义您自己的日期格式。FormatDate 选项,您可以添加 [Sales Date] 在第二列中,使用它对数据进行排序,然后隐藏该列。
© www.soinside.com 2019 - 2024. All rights reserved.