我正在 Crystal Reports 2008 中构建一个报表。该报表正在处理员工的日程安排。有时间表打开的时间段,以及时间表不可用的时间段。
目前,我已经构建了我的逻辑,以便它找到不可用时间的开始和结束。他们的报告告诉我该特定员工有多少小时不可用。
我的问题是,有时,员工在他们的日程安排开始时有一个块标记为“不可用”,而在一天结束时有一个块标记为“不可用”,但在两者之间他们是“开放的”。因此,报告称该特定员工一整天都在外面,但他们实际上在工作。告诉这些特定员工如何安排他们的一天不是一种选择——他们决定自己的日程安排,而我编写报告以满足他们的需求。
SCHEDULE_TIME EMP_ID UNAVAILABLE_CODE WORK_LENGTH
7/5/2011 11:00 100 NULL 15
7/5/2011 11:15 100 NULL 15
7/5/2011 11:30 100 NULL 15
7/5/2011 11:45 100 NULL 15
7/5/2011 12:00 100 15 5
7/5/2011 17:00 100 15 5
此示例显示某人将如何为不可用时间计算 5 小时块,但它只有 2 个约会。对于代码,我在约会时间之间使用 DATEDIFF。
(本质上,他们构建了多个“不可用”块,我的逻辑每天只能容纳一个“不可用”块)。
我很确定我需要在报告中运行一种 DO...WHILE 循环,以计算不可用的总小时数。我只是不确定如何在 Crystal Reports 中构建循环。