如何从数组中获取元素

2020-09-26 09:31发布

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

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


你好...

我在解析标记' | '

处有此字符串

F1E | I21 | R | 4 | 30 | 50 | 180 | 35 | BG340SR | S10 | D11 | T10 | 1P | PVC | PZS-Z25 | HS |/| F11 | R20 | K7035 | T7035 |/| SNAL |/,|/,/| TOB,S | H,2 |/| VZKT | VZKT | SD |

我需要将这些字符串元素插入Array,所以我创建了Formula:

全局StringVar数组myString;
 Redim myString [32];
 myString:= Split({Command.Parameter},'|');
 

但是现在我不知道如何从数组中获取n元素/索引

谢谢您的提示

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

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


你好...

我在解析标记' | '

处有此字符串

F1E | I21 | R | 4 | 30 | 50 | 180 | 35 | BG340SR | S10 | D11 | T10 | 1P | PVC | PZS-Z25 | HS |/| F11 | R20 | K7035 | T7035 |/| SNAL |/,|/,/| TOB,S | H,2 |/| VZKT | VZKT | SD |

我需要将这些字符串元素插入Array,所以我创建了Formula:

全局StringVar数组myString;
 Redim myString [32];
 myString:= Split({Command.Parameter},'|');
 

但是现在我不知道如何从数组中获取n元素/索引

谢谢您的提示

付费偷看设置
发送
8条回答
compass1988
1楼 · 2020-09-26 10:00.采纳回答

尝试

 WhilePrintingRecords;
 共享NumberVar数量:= Sum({Command.Quantity},{Command.Parameter});
 全局StringVar数组myString;
 Redim myString [32];
 myString:= Split({Command.Parameter},'|');
 如果UBound(myString)> = 4
 然后Tonumber(myString [4])*数量

 要么
 WhilePrintingRecords;
 共享NumberVar数量:= Sum({Command.Quantity},{Command.Parameter});
 全局StringVar数组myString;
 Redim myString [32];
 myString:= Split({Command.Parameter},'|');
 全局Numbervar Amt:= 0;
 如果UBound(myString)> = 4
 然后Amt:= Tonumber(myString [4]);

 Amt *数量


 
路亽曱_Ryan
2楼-- · 2020-09-26 09:43

超级!

谢谢师父,两者都完美运行!

如果元素不是数字而是字符串,情况会怎样?

在这种情况下,将无法使用UBound

关于ZAJDAN

compass1988
3楼-- · 2020-09-26 09:59

全局StringVar数组myString;

myString [n];

伊恩

天桥码农
4楼-- · 2020-09-26 09:57

谢谢..

这是我尝试的第一个方法,但是以这种方式出现了问题:

'下标必须在1到数组的大小之间'

jovirus
5楼-- · 2020-09-26 09:46

我也尝试过这样做:

如果UBound(myString)> = 4
 然后是myString [4]
 

它返回正确的值/元素,但是我需要以某种方式将值传递给变量以供下次使用(乘法)

SAP小菜
6楼-- · 2020-09-26 10:00

我已经尝试过了:

 WhilePrintingRecords;
 共享NumberVar数量:= Sum({Command.Quantity},{Command.Parameter});
 全局StringVar数组myString;
 Redim myString [32];
 myString:= Split({Command.Parameter},'|');
 如果UBound(myString)> = 4
 然后myString [4] *数量

但它返回:

"此处需要数字或货币金额。"

奇怪,因为UBound返回Number,并且变量Qty也是数据类型Number。

SAP小菜
7楼-- · 2020-09-26 10:00

只需按需使用它

如果UBound(myString)> = 4

 然后myString [4] * yourfield或公式
 Ian 

一周热门 更多>