Crystal reports 如何在Crystal Reports中循环执行计划

Crystal reports 如何在Crystal Reports中循环执行计划,crystal-reports,logic,reporting,Crystal Reports,Logic,Reporting,我正在Crystal Reports 2008中创建一个报告。该报告涉及员工的日程安排。有时间表打开的时隙,也有时间表不可用的时隙 目前,我已经构建了我的逻辑,以便它能够找到不可用时间的开始和结束。他们的报告告诉我,那个员工有多少小时不在 我的问题是,有时员工在日程开始时有一个街区标记为“不可用”,在一天结束时有一个街区标记为“不可用”,但在这两个街区之间他们是“开放的”。因此,报告说,某个员工整天都在外面,但他们确实在工作。告诉这些员工如何安排他们的一天不是一个选择——他们自己决定自己的日程,

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

也许我遗漏了一些东西,但你想做的事情是直截了当的。两个明显的选择:

  • 运行总数: 将字段设置为{TABLE.WORK_LENGTH} 将类型设置为sum 将求值公式设置为not(isnull({TABLE.UNAVAILABLE\u CODE})) 设置组/字段{TABLE.EMP_ID}更改时重置(假设您要查找每个员工的总数)

  • 公式/总和: 使用
    创建公式字段unavailable\u time,如果不是(isnull({TABLE.unavailable\u code})),则创建{TABLE.WORK\u LENGTH}否则0
    在{TABLE.EMP_ID}上创建一个组 在组页脚中的公式字段上创建一个总和


  • 你能提供更多关于你报告的技术细节吗?数据模型是什么样子的?您是如何计算这些块的,等等?您可能击中了它的头部-唯一的问题是它是一个命令对象,因此我需要将不可用的时间公式编程到SQL中,然后可能使用运行总数或一个总和。我来试一试,谢谢!