【问题标题】:Crystal Reports: Suppress records when any value from column #1 match any value from column #2Crystal Reports:当列 #1 中的任何值与列 #2 中的任何值匹配时,禁止记录
【发布时间】:2020-01-16 14:40:05
【问题描述】:

我正在创建一个水晶报表,从 2 个不同的数据库中提取数据。第一个数据库包含大部分客户数据,如下所示:

Customer ID  Name    ZIP
11111        John    10101
22222        Mary    10102
33333        Jeff    10203

第二个数据库只拉一列,可以链接回原始数据库的客户ID:

Customer ID
11111
44444
55555

我只想显示数据库 1 中的任何客户 ID 与数据库 2 中的任何客户 ID 都不匹配的记录。如果其中任何一个匹配,我希望抑制该行。我已经尝试了几件事,但我似乎返回了所有记录,或者没有。所以在这种情况下,我会得到理想的结果:

Customer ID  Name    ZIP
22222        Mary    10102
33333        Jeff    10203

【问题讨论】:

    标签: crystal-reports


    【解决方案1】:

    尝试制作一个名为suppress的公式

    if {database1.Customer_ID} = {database2.Customer_ID} then 1 else 0
    

    然后在您的选择标准中使用

    {@suppress} = 0
    

    这应该抑制所有这些匹配的实例,因为唯一接受的值是“0”,抑制公式将其设置为负匹配

    【讨论】:

    • K Emery,不幸的是,当我使用它时(我以前做过类似的事情),我根本没有得到任何行。我不知道这是否相关,但第一个数据库中的客户 ID 是整数数据类型,而第二个数据库中的客户 ID 是 varchar,所以我也将第二个数据库转换为 int(只有数字出现在这些字段)。
    • @Steven 您是否真的要从报告中省略所有数据或“隐藏”以使其不可见?
    • 只需隐藏它,使其在报告本身上不可见。
    • 您是否尝试过将{@suppress} = 0 放在详细信息抑制论坛中?
    • 我确实尝试过,但结果证明是数据库之间的链接。链接上的连接错误,所以我没有得到足够的数据。我不得不将其更改为左外连接并“强制执行”。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多