如何显示用户在 Webi 4.1 中选择的结束日期之前的月份

How to show month prior the end date the user has chosen in Webi 4.1

我正在 Webi 4.1 中创建仪表板。当我 运行 提示时,我选择报告的开始和结束日期。但是,我有一个折线图,显示了一段时间内按月的交易量趋势,我希望它排除结束日期,而是显示之前的月份。

示例:我选择 2016 年 6 月 1 日作为开始日期,2017 年 6 月 14 日(今天的当前日期)作为结束日期。但是对于折线图,我希望它显示 2016 年 6 月 1 日 - 2017 年 5 月 31 日。

BO 中的日期函数不如应有的成熟。

您可以检索提示中输入的值,但它将是一个字符串。首先,我们需要将其转换为日期类型。我们称这个变量为 [End Date].

=ToDate(UserResponse("Enter value for End Date:");"M/d/yyyy hh:mm:ss a")

这假定提示文本是 "Enter value for End Date:",并且您的本地日期格式是 "M/d/yyyy hh:mm:ss a")。根据需要进行调整。

一旦你有了它,这是一个相对简单的计算,从日期中减去该月的第几天:

=LastDayOfMonth(RelativeDate([End Date];-DayNumberOfMonth([End Date])))

最后,您可以过滤图表以显示小于此日期的日期。

编辑以添加过滤逻辑

要在过滤器中使用上述内容,您需要另一个变量来确定是否应显示一行。假设图表显示的日期来自一个名为 [Date] 的对象,您可以执行以下操作:

=If [Date] < LastDayOfMonth(RelativeDate([End Date];-DayNumberOfMonth([End Date]))) Then 'Y' Else 'N'

将其创建为名为 [DisplayDate] 的变量,然后使用 [DisplayDate] = 'Y'

将过滤器简单地应用于图表