如何检查一个设施的值是否为真,而其他设施的值为假
How check if value true for one facility but false for other facilities
我正在尝试在 crystal 报告中构建一个 SelectionFormula,它将检查一个设施的警报列是否为 true,而其他设施是否为 false。对于同一人的警报,对于不同的设施,任何具有真假的警报都将包含在报告中。
例如数据:
Last First Facility Alert
Yoda Guy A true
Yoda Guy B false
Skyw Luke A true
我希望我的报告给我 Yoda 而不是 Skyw,并列出 Yoda 拥有的设施以及他的名字和警报值。
需要举报:
Last First Facility Alert
Yoda Guy A true
Yoda Guy B false
会是 Report=>SelectionFormulas=>record
{Facilities.Alert} = true
and
{Facilities.Alert} = false
我看不出如何搭配每个案例中的一个人。我认为以上内容会为所有人提供完整的真假警报列表。
那是在还是不在?那会怎样?我是 crystal 的新手。 in and not in
*更新:我尝试按照下面的答案 (@millet) 进行操作。我为每个 table 添加了别名,并制作了 link,所以为了方便,它是 != 在别名和非别名 link 之间。
我为 Facility 添加了 Alert_True,为 Facility_1(别名)添加了 Alert_False,只是将字段拉入报告以进行警报。
然后,在 Report=>SelectionFormulas=>record 中,我添加了这个:
(
({Facilities.Alert} = true)
or
({Facilities_1.Alert} = false)
)
不过好像也没用。在我看到的结果中:
Last First Facility Alert_True Alert_False
Yoda Guy A true true
Yoda Guy B true true
Yoda Guy B true false
Yoda Guy A false false
Skyw Luke A false false
Skyw Luke C false false
我希望报告仅显示某些设施的警报何时为真,但至少不是全部。
**更新:
我根据下面的评论将 SelectionFormula 更改为这个,结果看起来不错,但并不明显。我不确定如何使警报差异更加明显。我改变了这个:
(
({Facilities.Alert} = true)
and
({Facilities_1.Alert} = false)
)
生成的 table 看起来像这样(原始数据可能已被修改):
Last First Facility Alert_True Alert_False
Yoda Guy A true false
Yoda Guy B true false
Yoda Guy C true false
Yoda Guy D true false
Skyw Luke A true false
Skyw Luke C true false
Test TT H true false
Test TT H true false
出于某种原因,它总是在第一个警报列中显示 true,在第二个警报列中显示 false。当我去我们的应用程序并检查发现的结果时,在这些设施中,至少有一个总是被检查,而有些则没有。但是,您无法从结果中分辨出它们是什么。例如,对于上面的测试,对于设施 S 他没有检查,但是对于设施 H 他检查了,而对于设施 J 他没有检查。但是报告只显示设施H进行测试。
解决此问题的一种方法是通过 table 别名:
将相关的 table 第二次带入报告(Crystal 会要求您为每个 table 的第二个实例指定一个别名)。
添加一个人是同一个人但设施不是同一设施的加入条件
添加一条记录选择条件,第一次Alert为True,第二次Alert为False
我正在尝试在 crystal 报告中构建一个 SelectionFormula,它将检查一个设施的警报列是否为 true,而其他设施是否为 false。对于同一人的警报,对于不同的设施,任何具有真假的警报都将包含在报告中。
例如数据:
Last First Facility Alert
Yoda Guy A true
Yoda Guy B false
Skyw Luke A true
我希望我的报告给我 Yoda 而不是 Skyw,并列出 Yoda 拥有的设施以及他的名字和警报值。
需要举报:
Last First Facility Alert
Yoda Guy A true
Yoda Guy B false
会是 Report=>SelectionFormulas=>record
{Facilities.Alert} = true
and
{Facilities.Alert} = false
我看不出如何搭配每个案例中的一个人。我认为以上内容会为所有人提供完整的真假警报列表。
那是在还是不在?那会怎样?我是 crystal 的新手。 in and not in
*更新:我尝试按照下面的答案 (@millet) 进行操作。我为每个 table 添加了别名,并制作了 link,所以为了方便,它是 != 在别名和非别名 link 之间。
我为 Facility 添加了 Alert_True,为 Facility_1(别名)添加了 Alert_False,只是将字段拉入报告以进行警报。
然后,在 Report=>SelectionFormulas=>record 中,我添加了这个:
(
({Facilities.Alert} = true)
or
({Facilities_1.Alert} = false)
)
不过好像也没用。在我看到的结果中:
Last First Facility Alert_True Alert_False
Yoda Guy A true true
Yoda Guy B true true
Yoda Guy B true false
Yoda Guy A false false
Skyw Luke A false false
Skyw Luke C false false
我希望报告仅显示某些设施的警报何时为真,但至少不是全部。
**更新: 我根据下面的评论将 SelectionFormula 更改为这个,结果看起来不错,但并不明显。我不确定如何使警报差异更加明显。我改变了这个:
(
({Facilities.Alert} = true)
and
({Facilities_1.Alert} = false)
)
生成的 table 看起来像这样(原始数据可能已被修改):
Last First Facility Alert_True Alert_False
Yoda Guy A true false
Yoda Guy B true false
Yoda Guy C true false
Yoda Guy D true false
Skyw Luke A true false
Skyw Luke C true false
Test TT H true false
Test TT H true false
出于某种原因,它总是在第一个警报列中显示 true,在第二个警报列中显示 false。当我去我们的应用程序并检查发现的结果时,在这些设施中,至少有一个总是被检查,而有些则没有。但是,您无法从结果中分辨出它们是什么。例如,对于上面的测试,对于设施 S 他没有检查,但是对于设施 H 他检查了,而对于设施 J 他没有检查。但是报告只显示设施H进行测试。
解决此问题的一种方法是通过 table 别名:
将相关的 table 第二次带入报告(Crystal 会要求您为每个 table 的第二个实例指定一个别名)。
添加一个人是同一个人但设施不是同一设施的加入条件
添加一条记录选择条件,第一次Alert为True,第二次Alert为False