微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Crystal Reports 选择公式 Crystal Syntax -- 不在字段中的值或不在数组中的值

如何解决Crystal Reports 选择公式 Crystal Syntax -- 不在字段中的值或不在数组中的值

我希望在我的记录选择中排除,但我的 not “in” 声明没有成功。

此语句有效

and not ({Table.Field} startswith ["ABC","123"]) //works when values start with items in the array

但是这个语句似乎被忽略了,尽管值在字段中

and not ({Table.Field} in ["ABC","123"]) // doesn’t work when values are anywhere in the field

这个语句也不起作用(没有数组,但值在字段中:

and not ({Table.Field} in "ABC”) // doesn’t work either

这些陈述是多项选择和排除的一部分。 有人能告诉我如何让“不在数组中”选择在 Crystal 语法中工作吗?我确信它是我一直忽略的非常简单的东西。文本大写/小写不是问题。

非常感谢。

解决方法

我认为您正在寻找 InStr 函数,该函数返回在另一个字符串中找到字符串的位置,如果找到,则返回 0。您的选择公式将如下所示:

Not (InStr({Table.Field},'ABC') > 0)

警告:使用 CR 函数进行过滤时,存在 CR 无法将过滤委托给 db 后端的风险,这在某些情况下会导致性能不佳。

编辑:对数组中的每个字符串执行检查的示例 - 可以在记录选择公式中完成:

StringVar Array stringarray := ["ABC","123"];
Local NumberVar i;
Local BooleanVar atLeastOneStringFound;
atLeastOneStringFound := false;
For i := 1 To Count(stringarray) Do (
    If InStr({Table.Field},stringarray[i]) > 0 
    Then atLeastOneStringFound := true;
);
Not atLeastOneStringFound;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。