【问题标题】:Creating yearly comparison after summarizing datediff in Crystal Reports在 Crystal Reports 中汇总 datediff 后创建年度比较
【发布时间】:2020-04-02 22:57:54
【问题描述】:

我创建了一份报告,该报告计算了一个人完成一项任务所需的天数 (datediff),然后计算了平均值。一组人完成相同任务所需的天数(通过对 datediff 求和然后插入“avg.”函数)。使用的时间范围是通过使用“开始日期”和“结束日期”参数字段设置的。

现在,最终用户会问,“这个平均值与去年相比如何?”

我通过创建一个交叉表给出了一个快速的答案,我将“开始日期”设置为 01/01/2018 和结束日期 12/09/2019,然后在列中按年份分组。这不是一个确切的年度比较,因为这是 2018 年全年与 2019 年年初至今的比较。

我知道有更好的方法来做到这一点。任何帮助表示赞赏!

每个任务都有唯一的 ID、开始日期和结束日期

【问题讨论】:

    标签: crystal-reports comparison average datediff date-difference


    【解决方案1】:

    尝试使用显示与主报告相同的摘要数据的子报告,但使用一组修改后的开始日期和结束日期。使用开始日期和结束日期链接子报表,但从每个值中减去一年。这将允许您的主报告显示 1-1-2019 至 12-09-2019 的数据,而子报告将显示 1-1-2018 至 12-09-2018。

    这是从日期中减去 1 年的公式。

    DateAdd("yyyy", -1, {@StartDate})
    

    您可以在子报表的选择条件中使用此公式,也可以在子报表中创建一个公式字段,然后在选择条件中使用该公式字段。

    【讨论】:

    • 我需要在子报表中为“上一年”创建一个公式吗?像 PY = 开始日期减去 365 之类的东西?
    • 需要一个公式来从日期中减去一年。 DateAdd() 函数将是完成此任务的最简单方法。我已经编辑了我的答案,以显示您需要的公式示例。
    • 我已复制报告并制作了 1 个子报告。我通过参数字段“开始日期”和“结束日期”链接了报告。您上面的公式表明“开始日期”是一个公式字段?
    • 我需要添加2个公式字段吗?一个用于开始,一个用于结束?
    • 这取决于您需要如何使用日期值。如果您在子报表的选择条件中只需要它们一次,那么您可以只为子报表的选择条件编写一个公式。如果您认为您可能需要子报表中其他地方的日期,那么您最好为每个日期创建一个公式字段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多