PC SOFT

WINDEVWEBDEV AND WINDEV MOBILE
ONLINE HELP

Home | Sign in | English UK
  • Syntax 1: Browsing the array elements
  • Syntax 2: Browsing the values of array elements
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
FOR EACH is used to perform different types of browse on the arrays:
  • Browsing the array elements,
  • Browsing the values of array elements.
Note: The FOR ALL, FOR EACH statements are accepted. The FOR EACH statement will be used in this documentation but it can be replaced by FOR ALL.
Versions 15 and later
The FOR EACH statement can also be used to browse the .Net objects that implement the IEnumerable interface.
New in version 15
The FOR EACH statement can also be used to browse the .Net objects that implement the IEnumerable interface.
The FOR EACH statement can also be used to browse the .Net objects that implement the IEnumerable interface.
Example
// Browse the elements found in an array of reals and calculate the sum
// Fill the array
ArrCalc is array of 3 reals
ArrCalc[1] = 12.5
ArrCalc[2] = 10
ArrCalc[3] = 7.5
// Calculate the sum
TotalSum is real
FOR EACH AnElement OF ArrCalc
        TotalSum += AnElement
END
Syntax

Browsing the array elements Hide the details

FOR EACH [ELEMENT] <Variable> [, <Key> [, <Counter>]] OF <Array> [WHERE <Condition>] [<Direction>]
    ...
END
<FOR EACH [ELEMENT]>:
Marks the beginning of statement block. The ELEMENT keyword is optional.
<Variable>:
Variable whose type is identical to the type of the array elements. For the arrays of classes, the variable must be a Dynamic Class variable. There is no need to declare this variable.
<Key>:
Key of element browsed. This key depends on the element browsed:
  • One-dimensional array: subscript of the element in the array.
  • Two-dimensional array (or n-dimensional array): counter that starts from 1
There is no need to declare this variable.
<Counter>:
Integer variable containing the number of iterations. There is no need to declare this variable.
<Array>:
Array to browse.
<Condition>:
<Direction>:
Optional indicator for the browse direction:
FromBeginning
(default value)
Browse the array from the first element to the last one.
FromEndBrowse the array from the last element to the first one.

Browsing the values of array elements Hide the details

FOR EACH [ELEMENT] <Value> OF <Array> [WHERE <Condition>] [<Direction>]
    ...
END
<FOR EACH ELEMENT>:
Marks the beginning of statement block. The ELEMENT keyword is optional.
<Value>:
Variable whose type is compatible with the array elements. There is no need to declare this variable.
<Array>:
Array to browse.
<Condition>:
<Direction>:
Optional indicator for the browse direction:
FromBeginning
(default value)
Browse the array from the first element to the last one.
FromEndBrowse the array from the last element to the first one.
Remarks

Syntax 1: Browsing the array elements

For each iteration, <Variable> directly refers to the current element in the array. If the value of <Variable> is modified, the current element in the array is modified.
When exiting from the loop (standard exit or via the BREAK statement), the value of the last element read is assigned to <Variable> but <Variable> does not directly refer to the array element anymore.
All types of arrays are available: automatic, fixed, dynamic.
The arrays can have several dimensions.
The behavior is undefined if the number of elements is modified in the browse loop.

Syntax 2: Browsing the values of array elements

For each iteration, the value of the element browsed is assigned to the <Value> variable. If the value of <Value> is modified, the current element in the array is not modified.
All types of arrays are available: automatic, fixed, dynamic.
The arrays can have several dimensions.
The behavior is undefined if the number of elements is modified in the browse loop.
Minimum version required
  • Version 10
This page is also available for…
Comments
Video For each SELECTED ROW OF
https://youtu.be/UvdAatVDvZw

https://windevdesenvolvimento.blogspot.com/2019/05/dicas-2127-windev-webdev-mobile-tabela.html

// BTN_MOSTRA_APENAS_sELECIONADOS
FOR EACH SELECTED ROW OF TABLE_Cliente
Trace(TABLE_Cliente.COL_Clienteid+" "+TABLE_Cliente.COL_Nome)
END
amarildo
28 May 2019
Vor For each
https://youtu.be/B9tZPrVs2aY
https://windevdesenvolvimento.blogspot.com/2019/04/dicas-2064-windev-arquivos-31-arquivo.html
sTexto is string=[
1|COURO|PR
2|CAMISA|UN
3|TENIS|PAR
]
FOR EACH STRING sLINHA OF sTexto SEPARATED BY CR
sCODIGO is string=ExtractString(sLINHA,1,"|")
NOME is string=ExtractString(sLINHA,2,"|")
UNIDADE is string=ExtractString(sLINHA,3,"|")
Trace("codigo="+sCODIGO+" nome="+NOME+" unidade="+UNIDADE)
END
amarildo
04 Apr. 2019