Crystal Report - 如何返回字段需要匹配多个值的记录

时间:2016-01-15 07:03:59

标签: sap

我正在运行Crystal Reports版本XI。我有一个表“PatientRecords”,其中包含以下列名称,dob,健康计划,地址等。我想返回所有患者姓名,其中健康计划他们只有APS或他们有APS和TCS。患者可能会在表中多次出现不同的健康计划。所有可能的健康计划都是APS,TCS,SELF和/或SPARK。

在水晶报道记录公式中,我尝试输入:

{PatientRecords.coverage} = "APS" or
({PatientRecords.coverage} = "APS" and {PatientRecords.coverage}="TCS")

这给了我只有APS的程序,但它不会返回任何同时具有APS和TCS的患者。如何让Crystal Reports返回正确的数据?

Sample data: 
    John Smith, 03-21-1976, APS, 123 Test Way, Visit 1
    Jane Murai, 02-15-1965, TCS, 2312 Apple Way, Visit 1
    Richard Sams, 05-30-1985, APS, 33 Bans Way, Visit 1
    John Smith, 03-21-1976, TCS, 123 Test Way, Visit 2
    Jane Murai, 02-15-1965, APS, 2312 Apple Way, Visit 2

因此,每次患者就诊都是记录,每条记录可以有不同的覆盖范围,APS,TCS,SELF或SPARK。因此,一个人可以出现多次,但覆盖范围不同。

1 个答案:

答案 0 :(得分:0)

  1. 不要过滤覆盖范围 - 取决于对此的抑制
  2. 由该人分组(即使您不显示该组)
  3. 创建函数以将每个coverage表示为如下数字:

    {@APS}:如果{PatientRecords.coverage} =" APS"然后1其他0

  4. 使用在人员组级别计算的汇总函数来确定对详细信息行的抑制,如下所示:

    如果max({@ APS},{PatientRecords.Name)= 1)和max({@ TCS},PatientRecords.Name)= 1则为false,否则为真

  5. 真/假可能会向后看,但真实意味着压制。