Crystal reports 将公式分组以说明两个字段

Crystal reports 将公式分组以说明两个字段,crystal-reports,Crystal Reports,与车辆资产管理部门合作,我根据以下两种陈述选择数据: ({EQ_MAIN.PROCST_PROC_STATUS} in ["A", "AS", "AT"] and {EQ_MAIN.DEPT_DEPT_CODE} like "P*" and {EQ_MAIN.ASSET_TYPE} <> "COMPONENT") or ({EQ_MAIN.PROCST_PROC_STATUS} in ["TA"] and {EQ_MAIN.DEPT_TEMP_LOANED_TO} like "P*

与车辆资产管理部门合作,我根据以下两种陈述选择数据:

({EQ_MAIN.PROCST_PROC_STATUS} in ["A", "AS", "AT"] and
{EQ_MAIN.DEPT_DEPT_CODE} like "P*" and
{EQ_MAIN.ASSET_TYPE} <> "COMPONENT") 
or
({EQ_MAIN.PROCST_PROC_STATUS} in ["TA"] and
{EQ_MAIN.DEPT_TEMP_LOANED_TO} like "P*" and
{EQ_MAIN.ASSET_TYPE} <> "COMPONENT")
基本上,如果设备处于A、AS或AT状态,并且属于以p开头的部门,我希望它显示在报告中。然而,选择声明的第二部分说明了临时借出给另一个部门的设备。选择语句似乎工作正常


我将这些数据按{EQ_MAIN.DEPT_DEPT_CODE}分组。但我希望它包括部门组下的任何临时借出设备,如果设备是临时借出给上述部门的。例如,汽车A属于部门K1234,但被租借到部门P5678。我希望A车出现在P5678的组下,以及属于P5678的所有其他车辆。本质上,无论一件情商是属于某个特定的部门,还是仅仅被租借到某个特定的部门,我都希望看到它们在水晶中属于同一组。想法?

我不认为分组公式是这种情况的解决方案。挑战基于记录集。因为每个部门代码只有一个借来的记录,所以您可以通过几种方式进行记录

如果这是一个选项,请修改查询或视图,以便为每个部门代码生成所有借出记录。如果使用SQL,可以通过在FROM子句中放置子查询来实现。然后,将父表EQ_MAIN连接到非唯一的常规键上的子查询。因为在这个场景中没有一对一的关系,所以您应该为每个部门代码获取所有借出的记录。然而,这将使您的记录集和mar性能膨胀。 然后,首先将报告分组为{DEPT_CODE},然后分组为{LOANED_TO}。对第二个组使用抑制公式隐藏与父组{DEPT_CODE}不匹配的任何{LOANED_to}部门。 更传统的Crystal方法是在{DEPT_CODE}上分组。然后,将子报告添加到组部分。使用相同的数据源,将OR子句后面的第二个选择条件块移动到子报告记录选择。这将返回所有{LOANED_TO}记录。在组{DEPT_CODE}和子报告{LOANED_TO}DEPT之间添加一个子报告链接。这将筛选与主组相关的{LOANED_TO}记录的结果。