在主报告标题上显示用户提示日期

2020-08-15 23:43发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 用户运行Webi报表时,...

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

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


嗨,

用户运行Webi报表时,提示询问两个日期:

1)。 指定COB自
2)。 指定COB耕种

我想在报告标题中显示这些日期。 到目前为止,我已经完成了此公式。 我想在日期中添加" st/rd/th",以便YYYY/MM/DD转换为DD th/st/rd 嗯,YYYY

我的公式太长,我认为我做错了方法。

="对于期间" + If(Right(Right(UserResponse(" Specify COB From"); 2); 1)=" 1")然后Right(UserResponse(" Specify COB From"); 2)+ " st" ElseIf(Right(Right(Right(UserResponse(" Specify COB From"); 2); 1)=" 3")然后Right(UserResponse(" Specify COB From"); 2)+" rd" Else Right(UserResponse (""指定COB来自"); 2)+" th" + FormatDate(ToDate(Substr(UserResponse("指定COB来自"); 5; 2);" MM");" Mmm")+"" +左( UserResponse(" Specify COB From"); 4)+" to" + If(Right(Right(UserResponse(" Specify COB Till"); 2); 1)=" 1")然后,Right(UserResponse(" Specify COB Till" "); 2)+" st" ElseIf(Right(Right(ight(UserResponse(" Specify COB Till"); 2); 1)=" 3")然后Right(UserResponse(" Specify COB Till"); 2)+" rd"其他权限(UserResponse(" Specify COB Till"); 2)+" th" + FormatDate(ToDate(Substr(UserResponse(" Specify COB Till"); 5; 2);" MM");" Mmm") +"" + Left(UserResponse(" Specify COB Till"); 4)

当我将报告导出为PDF时,我也注意到这些日期在报告中丢失了,只是显示为空白。

(271.0 kB)
4条回答
哎,真难
2020-08-16 00:10 .采纳回答

没有简单的方法来格式化日期以包含常规指标。 我会问他们的需要。 但是,如果您确实需要它们,我建议您将公式分解为多个公式,以简化构造和维护。

为模拟您的提示结果,我创建了一个字符串变量。 您将在这里使用UserResponse(" Specify COB From")而不是" 20191130"。

 From Date String =" 20191130" 

我将其转换为日期以便于格式化。

从转换后的日期= ToDate([从日期字符串];" yyyyMMdd")

现在从"转换后的日期"中提取月份的天数。

从 日期日期编号= DayNumberOfMonth([从转换后的日期])

从此处,我们可以确定"起始日期日期编号"的序号指示符。 看来您错过了第二和第二十二的" nd"。 因此,我采取了自由的做法。

从日期序号指示器= If([从日期日期编号] InList(1; 21; 31);" st"; If([从日期日期编号 ] InList(2; 22);" nd"; If([From Date Day Number] InList(3; 23);" rd";" th"))))

接下来,我们可以格式化

从日期格式化为格式。

从日期格式化为= FormatNumber([从日期日期编号];"#0")+ [从日期序号指示器] +"" + FormatDate([从日期 转换为];" Mmm")+"" + FormatNumber(年([从转换后的日期]);" 0000")

让我们为直到日期创建一组相似的变量。

截止日期字符串=" 20200602" 
已转换的截止日期= ToDate([截止日期字符串];" yyyyMMdd")
截止日期日期编号= DayNumberOfMonth([截止日期已转换]  )
直到日期序号指示符= If([直到日期日数] InList(1; 21; 31);" st"; If([到直到日期日数] InList(2; 22);"  nd"; If([截止日期日编号] InList(3; 23);" rd";" th"))))
截止日期格式= FormatNumber([截止日期日编号 琥珀色];  "#0")+ [截止日期序号指示符] +"" + FormatDate([截止日期转换];" Mmm")+"" + FormatNumber(年([截止日期转换]];" 0000")

最后,创建一个变量以将它们全部组合在一起。

最终日期范围="对于期间" + [从日期格式设置] +"到" + [直到日期格式设置] 

从逻辑上讲,这与您所拥有的没有什么不同。 但是,在构建变量时更容易看到变量的进度,从而更容易找到可能出现错误的位置。

我希望对您有所帮助。

Noel

一周热门 更多>