查找数字和字母以外的字符串中的字符

2020-08-20 09:11发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我已经对此进行了研究,但似乎找不...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我已经对此进行了研究,但似乎找不到解决方法。

我们的经理和助理在创建新的公司产品ID时,可以使用字母,数字和破折号。 所以:

22ZXW-44

是有效的产品编号,但类似于

3#3.25 * 14

不是。

我想写一个报告,使我可以返回产品ID(如第二个示例),方法是检查该字段中除字母,数字和破折号之外的任何内容。

显而易见的答案似乎是某种形式的Contains或通过域ID遍历ProductID的for..each循环,根据字段的长度,逐个字符地测试字符是什么。 我不需要遍历整个字符串-任何无效字符都会标记该字段。

我希望这是有道理的。 有什么建议吗?

3条回答
空代码
2020-08-20 09:32 .采纳回答

如果可以的话,您可能想要在数据库中编写一个存储函数来执行此检查。 然后,您可以在报表的SQL表达式中使用它来过滤报表,以仅从数据库中检索您要查找的记录,而不是Crystal获取所有记录并在内存中进行处理。 如果数据库能够完成工作,它将更快。

如果您必须在Crystal中进行操作,我会执行以下操作(Crystal语法):

 Local NumberVar i:  = 1;
 本地号码Var len:= Length({MyField});
 找到本地BooleanVar:= false;
 共享的StringVar数组validChars;

//一次创建一个有效值数组,并在每次使用此公式时使用它
 如果OnFirstRecord然后
   validChars = ['-','0'到'9','A'到'Z];

//在字段中遍历字符串,然后确定字符是否有效。
 当我<= len而未找到时
 (
   在validChars中找到:= UpperCase({MyField})[i];
   我:=我+ 1;
 );
 找到

您将在存储的函数中使用类似的逻辑。

-Dell

一周热门 更多>