用于分组依据的DateTime字段上的ShiftDateTime

2020-08-26 11:51发布

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

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


嗨,

我一直在浏览几个ShiftDateTime问题,但找不到与ShiftDateTime函数遇到的问题类似的主题。

情况:我们有这个应用程序,它以UTC +偏移格式将所有DateTime字段存储在数据库中。 为了在应用程序中显示正确的数据,每个用户都分配了一个特定的时区(也存储在数据库中)。

我们使用Crystal Reports(2016)运行报告,以动态处理时区,我们使用ShiftDateTime函数。 在运行时,我们替换报表中的每个DateTime字段,并向其中添加ShiftDateTime函数,包括分配给运行报表的用户的时区。 实际上效果很好。

但是,一旦使用DateTime字段进行分组,我们就会遇到一些问题。 由于您无法将ShiftDateTime函数添加到分组字段,因此我们为用于分组的DateTime字段创建一个新公式。 在该公式中,我们包含ShiftDateTime函数。 然后,我们将此公式用作分组的字段。 也可以,但是一旦您开始在该组中使用其他功能,就会出现问题。

让我给你举个例子。

数据库字段:{Job.JobFinishDate}
数据库字段值:2019-12-07 13:26:00.0000000 +02:00我们创建要分组的公式(不要管荷兰时区信息):ShiftDateTime ({Job.JobFinishDate},""," West-Europa(standaardtijd),-60,West-Europa(zomertijd),-60; 3.5.0,10.5.0")
组页脚中的功能:Count ({Job.JobEqmId}, {Job.JobFinishDate} ,"每月")

错误:"必须有一个与此字段匹配的组"
然后,我们尝试将ShiftDateTime函数包括在count函数内:Count({Job.JobEqmId},ShiftDateTime({Job.JobFinishDate},"" ,"西欧罗巴(standaardtijd),-60,西欧罗巴(zomertijd),-60; 3.5.0,10.5.0"),"每月")

不幸的是,Crystal Reports不允许这样做。

注意:计数功能只是一个示例,我知道我们可以使用总计来解决该特定示例。 还有其他一些功能更复杂的问题,我们无法替代。

所以我的问题基本上是如何处理用于分组的DateTime字段上的时区信息? 我们确实需要那里的时区信息来呈现正确的结果。 如果我们使用ShiftDateTime函数做正确的事情,那么有关如何处理函数问题的任何建议?

谢谢,
伯特

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

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


嗨,

我一直在浏览几个ShiftDateTime问题,但找不到与ShiftDateTime函数遇到的问题类似的主题。

情况:我们有这个应用程序,它以UTC +偏移格式将所有DateTime字段存储在数据库中。 为了在应用程序中显示正确的数据,每个用户都分配了一个特定的时区(也存储在数据库中)。

我们使用Crystal Reports(2016)运行报告,以动态处理时区,我们使用ShiftDateTime函数。 在运行时,我们替换报表中的每个DateTime字段,并向其中添加ShiftDateTime函数,包括分配给运行报表的用户的时区。 实际上效果很好。

但是,一旦使用DateTime字段进行分组,我们就会遇到一些问题。 由于您无法将ShiftDateTime函数添加到分组字段,因此我们为用于分组的DateTime字段创建一个新公式。 在该公式中,我们包含ShiftDateTime函数。 然后,我们将此公式用作分组的字段。 也可以,但是一旦您开始在该组中使用其他功能,就会出现问题。

让我给你举个例子。

数据库字段:{Job.JobFinishDate}
数据库字段值:2019-12-07 13:26:00.0000000 +02:00我们创建要分组的公式(不要管荷兰时区信息):ShiftDateTime ({Job.JobFinishDate},""," West-Europa(standaardtijd),-60,West-Europa(zomertijd),-60; 3.5.0,10.5.0")
组页脚中的功能:Count ({Job.JobEqmId}, {Job.JobFinishDate} ,"每月")

错误:"必须有一个与此字段匹配的组"
然后,我们尝试将ShiftDateTime函数包括在count函数内:Count({Job.JobEqmId},ShiftDateTime({Job.JobFinishDate},"" ,"西欧罗巴(standaardtijd),-60,西欧罗巴(zomertijd),-60; 3.5.0,10.5.0"),"每月")

不幸的是,Crystal Reports不允许这样做。

注意:计数功能只是一个示例,我知道我们可以使用总计来解决该特定示例。 还有其他一些功能更复杂的问题,我们无法替代。

所以我的问题基本上是如何处理用于分组的DateTime字段上的时区信息? 我们确实需要那里的时区信息来呈现正确的结果。 如果我们使用ShiftDateTime函数做正确的事情,那么有关如何处理函数问题的任何建议?

谢谢,
伯特

付费偷看设置
发送
2条回答
小c菟菟
1楼 · 2020-08-26 12:16.采纳回答

对于该函数,您将使用要分组的公式而不是{Job.JobFinishDate}。 摘要函数的第二个参数必须是用于组的字段或公式(除非您要进行总计,在这种情况下,您不提供组参数。)

-Dell

昵称总是被占用
2楼-- · 2020-08-26 12:20

嗨,Bert,

在包含ShiftDateTime的公式字段中,将以下关键字添加为第一行:

 whileReadingRecords;  

您现在应该可以从此公式字段中添加一个组。

-阿比拉什

一周热门 更多>