将字符串转换为数字,但仅当值是数字时

2020-08-27 00:12发布

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

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


我们有一个修订字段,它是一个字符串,并且正在组页脚中使用它。 当前,当用户输入修订版1、2、3,... 9时,效果很好,但是一旦输入10,它将被视为字符串,然后变为10、1、2、3 ... 9。 我不能将字段转换为数字,然后使用它,因为确实有其他记录将其用作字符串,即R1,R2,R3。

如果我使用IsNumeric支票,则只能将其转换为数字,但是公式错误,因为现在该字段必须为数字。

我们也不能更改成千上万的记录来强制执行01,02,03。

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

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


我们有一个修订字段,它是一个字符串,并且正在组页脚中使用它。 当前,当用户输入修订版1、2、3,... 9时,效果很好,但是一旦输入10,它将被视为字符串,然后变为10、1、2、3 ... 9。 我不能将字段转换为数字,然后使用它,因为确实有其他记录将其用作字符串,即R1,R2,R3。

如果我使用IsNumeric支票,则只能将其转换为数字,但是公式错误,因为现在该字段必须为数字。

我们也不能更改成千上万的记录来强制执行01,02,03。

付费偷看设置
发送
1条回答
暮风yp
1楼-- · 2020-08-27 01:03

找出可能存在的最大修订数,以便知道需要多少位数。

下面的公式将从文本中提取第一个数字字符串,添加前导零,然后 将其放回字符串中以进行分组。 假定版本号中的位数不超过3位。

本地StringVar版本:="";
 本地StringVar num:="";
 局部BooleanVar Continue:= true;
 本地号码Var i:= 0;
 对于i:= 1 to length(revision)做
 (
   如果继续,那么
   (
     如果是IsNumeric(修订[i]),则
       num:= num +版本号[i]
     其他
       继续:= length(num)= 0; //不要看第一组数字后的文本
   );
 );
 如果length(num)> 0则
   版本:=替换(版本,编号,正确的('00'+编号,3))
 修订

-Dell

一周热门 更多>