0

我正在编写一份报告,用于监控制造公司车间不同部分之间的工作停机时间。
这是我必须使用的示例:

SHR - - 最小值(开始时间) - - 最大值(结束时间)
PUN - - 最小值(开始时间) - - 最大值(结束时间)
BEN - - 最小值(开始时间) - - 最大值(结束时间)
MTP - - 最小值(开始时间) - - 最大值(结束时间)
WLD - - 最小值(开始时间) - - 最大值(结束时间)
ASM - - 最小值(开始时间) - - 最大值(结束时间)

接下来我想做的是减去SHR 的最大值(结束时间)从 Pun 的最小值(开始时间)开始,然后一直向下,PUN 从 BEN,BEN 从 MTP 等。

公式或 sql 查询的任何指针。谢谢!!


编辑
这是我一直在尝试的一些代码的示例。
我面临的问题是每个进程 ID 有多个实际结束时间和实际开始时间,所以我必须澄清 processID
全局 datetimevar 之间的调整。
很棒:=最大值({TimecardLines.lmlActualEndTime},{JobOperations.jmoProcessID});
全局 datetimevar 最少;
下一个({JobOperations.jmoProcessID});
最少 := minimum({TimecardLines.lmlActualstartTime}, {JobOperations.jmoProcessID});
全局时间变量 getterdone;
最少 - 很棒

4

1 回答 1

0

你有正确的想法;只需通过全局变量传递每组的最大值。假设您的报告按 {JobOperations.jmoProcessID} 分组,那么您可以执行以下操作:

// Place this formula in Group Footer
whileprintingrecords;
datetimevar latest := maximum({TimecardLines.lmlActualEndTime}, JobOperations.jmoProcessID});

// You can place this formula anywhere in your group as long as it is BEFORE the placement of the previous formula (otherwise the 'latest' variable won't represent the previous group
// Suppress this formula for the first group, as it will not be applicable
whileprintingrecords;
datetimevar latest;

datediff('d', latest, minimum({TimecardLines.lmlActualEndTime}, JobOperations.jmoProcessID})
于 2013-09-19T15:46:49.053 回答