Crystal 按浮动时间报告组数据
Crystal reports group data by floating hours
例如,我有 SQL table 结构如下所示。 RASP_DATE
表示火车发车的时间,RACE_HOURS
表示火车行驶的小时数。
RASP_DATE RACE_HOURS
01.10.2020 15:05:00 4
01.10.2020 15:35:00 3
01.10.2020 16:10:00 8
01.10.2020 16:25:00 6
我需要根据这些数据开发一个报告,以计算每小时的总行程时间。例如,根据上面的示例,报告将显示从 15:00 到 16:00 的总行程时间为 7 小时,从 16:00 到 17:00 - 14 小时。使用 Crystal 报告中的组可以轻松完成此任务。但是,任务不同 - 我需要计算“运行”小时内的旅行小时数。用户输入参数“分钟”(例如15),它是5的倍数,现在“小时”应该不是从15:00到16:00,而是从[=24]计算=] 到 16:15,从 17:15 到 18:15,等等。很可能,为此更改分组是必要的,但我不知道确切的公式或如何做这个。请给我一个提示。
我现在无法对其进行测试,但请尝试以下操作。请注意,如果 RASP_DATE 可以包含秒,则可能会调整公式。
创建一个名为“小时”的公式
小时({TableName.RASP_DATE})
创建一个名为“分数”的公式
minute({TableName.RASP_DATE}) \ {?minutes} //运算符是整数除法
按“小时”公式创建组
按“分数”公式创建组
在组中放置一个汇总字段以汇总 RACE_HOURS。
我认为这为获得完整解决方案指明了方向。
它是这样工作的:
创建了新的操作员“分钟”(数字)。
创建了新公式“floating_hour”:
if minute({TableName.RASP_DATE}) < {?minutes} then
time(hour({TableName.RASP_DATE})-1,{?minutes},0) else
if minute({TableName.RASP_DATE}) >= {?minutes} then
time(hour({TableName.RASP_DATE}),{?minutes},0)
按“RASP_DATE”创建了一个群组(按周排序)
按“floating_hour”公式创建了一个组。
在“floating_hours”组中汇总RACE_HOURS。
例如,我有 SQL table 结构如下所示。 RASP_DATE
表示火车发车的时间,RACE_HOURS
表示火车行驶的小时数。
RASP_DATE RACE_HOURS
01.10.2020 15:05:00 4
01.10.2020 15:35:00 3
01.10.2020 16:10:00 8
01.10.2020 16:25:00 6
我需要根据这些数据开发一个报告,以计算每小时的总行程时间。例如,根据上面的示例,报告将显示从 15:00 到 16:00 的总行程时间为 7 小时,从 16:00 到 17:00 - 14 小时。使用 Crystal 报告中的组可以轻松完成此任务。但是,任务不同 - 我需要计算“运行”小时内的旅行小时数。用户输入参数“分钟”(例如15),它是5的倍数,现在“小时”应该不是从15:00到16:00,而是从[=24]计算=] 到 16:15,从 17:15 到 18:15,等等。很可能,为此更改分组是必要的,但我不知道确切的公式或如何做这个。请给我一个提示。
我现在无法对其进行测试,但请尝试以下操作。请注意,如果 RASP_DATE 可以包含秒,则可能会调整公式。
创建一个名为“小时”的公式
小时({TableName.RASP_DATE})
创建一个名为“分数”的公式
minute({TableName.RASP_DATE}) \ {?minutes} //运算符是整数除法
按“小时”公式创建组
按“分数”公式创建组
在组中放置一个汇总字段以汇总 RACE_HOURS。
我认为这为获得完整解决方案指明了方向。
它是这样工作的:
创建了新的操作员“分钟”(数字)。
创建了新公式“floating_hour”:
if minute({TableName.RASP_DATE}) < {?minutes} then time(hour({TableName.RASP_DATE})-1,{?minutes},0) else if minute({TableName.RASP_DATE}) >= {?minutes} then time(hour({TableName.RASP_DATE}),{?minutes},0)
按“RASP_DATE”创建了一个群组(按周排序)
按“floating_hour”公式创建了一个组。
在“floating_hours”组中汇总RACE_HOURS。