点击此处---> 群内免费提供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参数或任何其他方式实现这一目标吗?
您可以执行以下操作:
定义以下变量:
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)
希望对您有所帮助
我解决了这个问题 几年前通过创建Calendar Universe创建一个场景。 这是我的方法...
https://blogs.sap.com/2014/02/11/first-day-previous-week-with-a-twist /
此后一直运行良好。
Noel
嗨,蒂娜,
为了在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)))) p>
然后将日期调整为每月的第一天
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")
嗨艾曼,
非常感谢。由于我需要将此显示为开始日期的默认值,因此我需要在Universe上实现该解决方案。 通过第一种方法,它可以返回正确的月份,并进一步级联公式以按日返回相对日期有助于解决此问题。
此致
蒂娜
一周热门 更多>