Crystal reports Crystal Reports 2011-基于某些标准抑制信息

Crystal reports Crystal Reports 2011-基于某些标准抑制信息,crystal-reports,crystal-reports-2011,crystal-reports-formulas,Crystal Reports,Crystal Reports 2011,Crystal Reports Formulas,我将尝试用词来表达这个问题,不要太混乱 我们有一份报告,希望向每位患者展示他们的医疗保险。患者记录中的每个保险都是按医嘱编号编号的。然而,我们不只是想展示这一点;我想输入某些标准,以便如果保险A在患者ID下有订单号1,则显示该患者的所有保险。如果患者没有1号订单中的保险,请勿在报告中显示该患者或其任何信息 在下面的代码中,担保人指的是保险。所以订单号和担保人姓名是我们关注的重点。下面是我在Section Expert中为抑制选项输入的代码。我的假设是,如果它满足条件,TRUE将抑制信息,否则FA

我将尝试用词来表达这个问题,不要太混乱

我们有一份报告,希望向每位患者展示他们的医疗保险。患者记录中的每个保险都是按医嘱编号编号的。然而,我们不只是想展示这一点;我想输入某些标准,以便如果保险A在患者ID下有订单号1,则显示该患者的所有保险。如果患者没有1号订单中的保险,请勿在报告中显示该患者或其任何信息

在下面的代码中,担保人指的是保险。所以订单号和担保人姓名是我们关注的重点。下面是我在Section Expert中为抑制选项输入的代码。我的假设是,如果它满足条件,TRUE将抑制信息,否则FALSE将允许信息。但是,这是不够的,因为它会抑制所有其他信息

if {billing_guar_order_no_ep.guarantor_order_number}  = "1" AND
{billing_guar_order_no_ep.guarantor_name} = "Medicare" then
    false
else
    true
我假设它需要对每个患者进行迭代或循环,如果它找到了这些信息,则列出患者的所有信息并向前移动,否则将抑制并向前移动。我希望这是有道理的

例如:

|Patient ID|Order Number|Guarantor Name|
| -------- | ---------- | ------------ |
|1         |           1|Medicare      |
|1         |           2|Medicaid      |
|2         |           1|Medicaid      |
|2         |           2|Medicare      |
在上面的示例中,我希望报告显示从患者1到包括所有订单号的所有内容,甚至不在报告中显示患者2。然而,发生的事情是患者1确实出现了,但只有1号医嘱;它会抑制所有其他信息


我遗漏了什么?

您想要的查询将是以下内容的改编:

select *
from data d
where not exists (
  select 1
  from data
  where pat_id=d.pat_id
  and   order_id=1
  and   guarantor_name='Medicaid'
)
“链接专家”不支持此语法,因此您需要使用命令

过程:

通过选择数据库|显示SQL查询获取当前查询。。。 创建新报告 从数据库专家中选择“添加命令” 粘贴查询,然后调整它
:=用于设置值,而不是用于等价。已修复它。我写的时候没注意到。它仍然没有完全按照我想要的那样做。它将去掉那条=医疗补助的线,但它仍然显示其余的部分。如果客户端不符合条件,我根本不希望它们出现。使用记录选择公式WHERE子句删除不需要的数据可能更容易。在这种情况下,我将如何使用WHERE?我是一名SQL n00b,因此我不知道如何或在何处将其写入报告;如果{billing_guar_order_no_ep.guar_name}=Medicaid,则cnt:=cnt+1,否则cnt:=cnt;这是一个公式,@countOfMedicaid。然后我使用了Report->Section Expert中的抑制规则,并使用了以下公式:sum{@countOfMedicaid},{client\u guar\u list\u no\u ep.PATID}>0这已经起作用了;它抑制了我不想在报告中看到的PAT_ID,只给我没有完整Medicaid的PAT_ID。现在的问题是把客户端的数量加起来…计算被抑制的记录…我只想让它计算未被抑制的记录。有什么想法吗?