我正在尝试在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。
答案 0 :(得分:0)
一种解决方法是通过表别名:
第二次将相关表放入报告中(Crystal会要求您为每个表的第二个实例指定一个别名)。
添加一个加入条件,即该人是同一个人,但该设施不是同一设施
在第一个实例Alert为True的情况下为第二个实例Alert为False的记录选择条件。