0

我正在 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 中构建循环。

4

1 回答 1

1

也许我错过了一些东西,但你想做的事情看起来很简单。两个明显的选择:

  1. 运行总计:将字段设置为 {TABLE.WORK_LENGTH} 将类型设置为 sum 将评估公式设置为 not(isnull({TABLE.UNAVAILABLE_CODE})) 设置组/字段 {TABLE.EMP_ID} 更改时的重置(假设您'正在寻找每位员工的总数)

  2. 公式/总和:使用if not(isnull({TABLE.UNAVAILABLE_CODE})) then {TABLE.WORK_LENGTH} else 0 在 {TABLE.EMP_ID} 上创建组创建公式字段不可用时间 在组页脚中的公式字段上创建总和

于 2012-11-16T16:51:57.253 回答