cancel
Showing results for 
Search instead for 
Did you mean: 

How to get element from Array

former_member267979
Participant
0 Kudos

Hello...

I have this string where is parsing mark ' | '

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|

this string elements I need to insert into Array, so I created Formula:

Global StringVar Array myString;
Redim myString [32];
myString:= Split({Command.Parameter},'|');

but now I do not know how can I get n-element/index from the Array

Thank You for any hint

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Try

WhilePrintingRecords ;
Shared NumberVar Qty := Sum({Command.Quantity},{Command.Parameter});
Global StringVar Array myString;
Redim myString [32];
myString:= Split({Command.Parameter},'|');
If UBound(myString)>=4
Then Tonumber(myString[4]) * Qty

Or
WhilePrintingRecords ;
Shared NumberVar Qty := Sum({Command.Quantity},{Command.Parameter});
Global StringVar Array myString;
Redim myString [32];
myString:= Split({Command.Parameter},'|');
Global Numbervar Amt:=0;
If UBound(myString)>=4
Then Amt:= Tonumber(myString[4]);

Amt* Qty


former_member267979
Participant
0 Kudos

SUPER!

Thank You Master, both works perfectly!

how it will be in case when the element will not be Number, but string?

in such case will not be possible use UBound

Regards ZAJDAN

Answers (4)

Answers (4)

former_member267979
Participant
0 Kudos

how it will be in case when the element will not be Number, but string?

in such case will not be possible use UBound

Former Member
0 Kudos

Just use it as you have

If UBound(myString)>=4

Then myString[4] * yourfield or formula
Ian
former_member267979
Participant
0 Kudos

This I already tried:

WhilePrintingRecords ;
Shared NumberVar Qty := Sum({Command.Quantity},{Command.Parameter});
Global StringVar Array myString;
Redim myString [32];
myString:= Split({Command.Parameter},'|');
If UBound(myString)>=4
Then myString[4] * Qty

but it returns:

'A number, or currency amount is required here.'

strange, because UBound returns Number and also the variable Qty is datatype Number.

former_member267979
Participant
0 Kudos

I also tried this:

If UBound(myString)>=4 
Then myString[4] 

it returns correct value/element, but I need somehow pass the value into variable for next use (multiplication)

Former Member
0 Kudos

Global StringVar Array myString;

myString[n];

Ian

former_member267979
Participant
0 Kudos

Thank You..

it was the first what I have tried , but in this way appears problem:

'A subscript must be between 1 and the size of the array'