如何检查一种设施的值为true,而其他设施的值为

时间:2019-05-22 15:25:30

标签: select where crystal-reports-2008

我正在尝试在Crystal报表中构造一个SelectionFormula,该报表将检查是否一种设施的警报列为true,而其他设施的值为false。对于同一人的警报,对于不同的设施,具有真假的任何事件都将包含在报告中。

例如数据:

Last  First  Facility   Alert
Yoda  Guy    A          true
Yoda  Guy    B          false
Skyw  Luke   A          true

我希望我的报告给我Yoda而不是Skyw,并列出Yoda的设施以及他的名字和Alert值。

想要报告:

Last  First  Facility   Alert
Yoda  Guy    A          true
Yoda  Guy    B          false

会是Report => SelectionFormulas => record

{Facilities.Alert} = true
and
{Facilities.Alert} = false

在每种情况下,我都不知道如何配合一个人。我认为以上所述将为我提供所有所有人的真实和错误警报的整个列表。

那会在里面吗?那会如何?我是水晶的新手。 in and not in

*更新:我尝试做下面答案(@millet)中的操作。我为每个表添加了“别名”,并进行了链接,以方便使用,在别名链接与非别名链接之间是!=。

我为Facility添加了Alert_True,为Facility_1添加了Alert_False(别名),只是将字段拉入报告以进行警报。

然后,在Report => SelectionFormulas =>记录中,我添加了以下内容:

(
({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)
    )

结果表如下所示(原始数据可能已被修改):

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。

1 个答案:

答案 0 :(得分:0)

一种解决方法是通过表别名:

第二次将相关表放入报告中(Crystal会要求您为每个表的第二个实例指定一个别名)。

添加一个加入条件,即该人是同一个人,但该设施不是同一设施

在第一个实例Alert为True的情况下为第二个实例Alert为False的记录选择条件。