提示中的默认日期-上一季度的第一天

2020-09-12 20:22发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我正在尝试为webi报表创建默认日期提示,我们需要在其中显示开始日期为上一季度的第一天,并且每次刷新报表时都应动态计算该日期。

例如:今天的日期:2018年9月30日

预计日期:2017年1月7日

我已经创建了Universe参数并尝试使用RelativeDate(CurrentDate();-4; QuarterPeriod),但这会返回今天365天的日期。

sql dateadd函数不起作用,我们也无法使用任何blx对象,因为我们将其定义为Universe参数。

任何人都可以帮助我们如何使用Universe参数或任何其他方式实现这一目标吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我正在尝试为webi报表创建默认日期提示,我们需要在其中显示开始日期为上一季度的第一天,并且每次刷新报表时都应动态计算该日期。

例如:今天的日期:2018年9月30日

预计日期:2017年1月7日

我已经创建了Universe参数并尝试使用RelativeDate(CurrentDate();-4; QuarterPeriod),但这会返回今天365天的日期。

sql dateadd函数不起作用,我们也无法使用任何blx对象,因为我们将其定义为Universe参数。

任何人都可以帮助我们如何使用Universe参数或任何其他方式实现这一目标吗?

付费偷看设置
发送
5条回答
追夢秋陽
1楼 · 2020-09-12 20:40.采纳回答

您可以执行以下操作:

定义以下变量:

1。 您上面的公式作为变量

1stVar = RelativeDate(CurrentDate();-4; QuarterPeriod)

2。 计算Qurater的第一个月

1stMofQ = Quarter(CurrentDate())* 3-2

3。 定义变量以计算当月与当前季度的第一个月之间的月份差异(从1stVar或currentDate()相同)

2ndVar = MonthNumberOfYear(CurrentDate()) -[1stMofQ]

4。 最后:

dateOf1stDayofQofLastYear = RelativeDate([1stVar];-[2ndVar]; MonthPeriod)

希望对您有所帮助

昵称总是被占用
2楼-- · 2020-09-12 20:43

我解决了这个问题 几年前通过创建Calendar Universe创建一个场景。 这是我的方法...

https://blogs.sap.com/2014/02/11/first-day-previous-week-with-a-twist /

此后一直运行良好。

Noel

3楼-- · 2020-09-12 20:28

嗨,蒂娜,

为了在Universe中实施该解决方案,您需要定义以下变量来计算"季度" 当前月份"

此外,在Universe级别上没有RelativeDate函数。

....

对象:

CDate:sysdate(或任何其他日期)

CMonth: to_number(to_char(@Select(CDate),'mm'))

季度:ceil(@Select(CMonth)/3)

1stMofQ:@Select(季度)* 3 -2

最终结果:

RDate:add_months(@Select(CDate),-(12+(@Select(CMonth)-@ Select(1stMofQ))))

然后将日期调整为每月的第一天

FRDate:@Select(RDate)-to_number(to_char(@Select(RDate),'dd'))+ 1

....

希望可以帮助您

另一种解决方案:

1。 计算Qurater的第一个月

1stMofQ = Quarter(CurrentDate())* 3-2

2。 定义DateAsString

DateAsString =" 01/" + [1stMofQ] +"/" + FormatNumber(Year(CurrentDate())-1;"#")

3。 最后

dateOf1stDayofQofLastYear2 = ToDate([DateString];" dd/MM/yyyy")

p>
me_for_i
5楼-- · 2020-09-12 20:34

嗨艾曼,

非常感谢。由于我需要将此显示为开始日期的默认值,因此我需要在Universe上实现该解决方案。 通过第一种方法,它可以返回正确的月份,并进一步级联公式以按日返回相对日期有助于解决此问题。

此致

蒂娜

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答