如何在Crystal报表中显示每年动态列的结果



如何在水晶报告中显示每年的动态列成本(最多3年)。参数:DateFrom和日期水晶报告版本:2013

Table:Jobs

+-------+------------+------------+
| EQ_no |  Job_Date  | Total_Cost |
+-------+------------+------------+
|  1006 | 01/30/2017 |        250 |
|  1006 | 01/31/2018 |        350 |
|  1006 | 01/01/2019 |        150 |
|  1006 | 02/01/2019 |        322 |
|  1006 | 05/05/2019 |        450 |
|  1006 | 02/02/2020 |        500 |
|  1006 | 02/03/2021 |       1212 |
| 29198 | 02/04/2017 |       3000 |
| 29198 | 02/05/2018 |        250 |
+-------+------------+------------+

表:Equipment

+-------+-----------+
| EQ_no | Serial no |
+-------+-----------+
| 1006  | MDRSC12   |
| 29198 | FDRSC13   |
|  6218 | REAFC14   |
+-------+-----------+

结果:

+-------+-----------+------+------+------+
| EQ_no | Serial no | 2018 | 2019 | 2020 |
+-------+-----------+------+------+------+
|  1006 | MDRSC12   |  350 |  922 |  500 |
| 29198 | FDRSC13   |  250 |    0 |    0 |
|  6218 | REAFC14   |    0 |    0 |    0 |
+-------+-----------+------+------+------+

如果日期为2018年1月1日至2020年6月1日,则显示每年的总成本2018,2019 &2020.
如果日期为2020年1月1日至2021年6月1日,则显示2020年的每年总成本& &;2021只。

创建一个公式字段,该字段使用Year()函数仅从Job_Date字段中提取4位数字年份。你喜欢给这个字段起什么名字都行,但我将其命名为"jobyear"。

公式为Year(Job_Date);

现在创建第二个Formula Field,使用相同的函数从今天的日期提取4位数字年份。我将这个公式字段命名为"currentyear"。。

这个公式是Year(CurrentDate);

现在创建3个Running Total Fields。给它们起个名字,比如今年、去年和两年前。设置所有这三个字段以汇总Total_Cost字段。将重置条件设置为最适合您的报告的任何条件,然后将计算条件设置为使用公式,并对每个公式使用以下公式。

对于ThisYear,公式应为CurrentYear = JobYear;

对于LastYear,公式应为CurrentYear - 1 = JobYear;

对于TwoYearsAgo,公式应该是CurrentYear - 2 = JobYear;

这将允许运行total字段根据作业完成的年份将任何作业的总成本汇总到正确的桶中。

最新更新