【问题标题】:Sorting behavior incorrect with FormatDateFormatDate 的排序行为不正确
【发布时间】:2016-11-26 04:13:25
【问题描述】:

我正在使用 SAP Business Objects BI4 编辑 Webi 报告。

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

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

最初,销售日期维度的格式为“mm/dd/yyyy”。

我想按此格式化日期维度按升序对表格进行排序,因此我只需选择表格 > 右键单击​​ > 选择排序,然后选择 =FormatDate([Sales Date];"dd-MMM-yyyy" ) 按升序排列。

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

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

如您在上面看到的,似乎仅按“日”值进行排序,而完全忽略了“月”和“年”。

我的对象在 Universe 中被正确定义为“日期”。

当我不使用“dd-MMM-yyyy”格式并保留销售日期的原始格式时,排序正确完成。

有什么建议吗? 谢谢!

【问题讨论】:

    标签: sorting sap business-intelligence business-objects webi


    【解决方案1】:

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

    你有两个选择:

    1. 使用(自定义)日期格式设置日期格式(当文档处于 编辑 模式时,在 Formatting 部分)。您需要使用 RIA(Java 小程序)来定义您自己的自定义日期格式。或者,您可以使用其中一种可用的格式。这不会改变数据类型,只会改变表示,因此排序应该没问题。

    1. 如果您仍想使用FormatDate 选项,可以在第二列中添加[Sales Date],使用它对数据进行排序,然后隐藏该列。

    【讨论】:

    • 非常感谢!我认为您的第一个选项更适合要求,并且有效:)
    猜你喜欢
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多