ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage syntax / Structured statements
  • 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/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
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.
Remark: The FOR ALL, FOR EACH statements are accepted. The FOR EACH statement will be used in this documentation but it can be replaced with FOR ALL.
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
WINDEVWEBDEV - Server codeiPhone/iPadIOS WidgetApple WatchMac Catalyst
// Browse the arrCustomers array and only process the customers
// whose city is equal to "MONTPELLIER".
 
stCustomer is Structure
LastName is string
FirstName is string
City is string
END
 
arrCustomers is array of stCustomer
 
FOR EACH stACustomer OF arrCustomers where City = "MONTPELLIER"
// Process
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 the 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>:
WINDEVWEBDEV - Server codeiPhone/iPadIOS WidgetApple WatchMac Catalyst Condition to indicate to filter the browse. Only the array elements corresponding to the filter will be browsed.
<Direction>:
Optional indicator for the iteration 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 the 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>:
WINDEVWEBDEV - Server codeiPhone/iPadIOS WidgetApple WatchMac Catalyst Condition to indicate to filter the browse. Only the array elements corresponding to the filter will be browsed.
<Direction>:
Optional indicator for the iteration 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
Click [Add] to post a comment

Last update: 04/06/2023

Send a report | Local help