如何解决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 举报,一经查实,本站将立刻删除。