ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage syntax / Structured statements
  • Syntax 1: Browse field elements
  • Syntax 2: Browse selected field elements
  • Browsing the rows of a Table control
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
The statement FOR EACH is used to perform different types of browse on the controls (List Box, Table or Looper controls):
  • Iterating over the elements in the control.
  • Browse the values of the selected elements.
  • Browse the subscripts of the selected elements.
Note: The FOR EACH, FOR ALL statements are accepted. The FOR EACH statement will be used in this documentation but it can be replaced with FOR ALL.
Limitation: This instruction cannot be used on Combo Box controls.
The FOR EACH statement can also be used to browse the .Net objects that implement the IEnumerable interface.
Example
// Pour chaque utilisateur sélectionné dans le champ Table TABLE_Utilisateur
FOR EACH SELECTED ROW OF TABLE_Utilisateur
	// Envoi d'un email
	Proc_EnvoieMessage(COL_Nom, COL_Email)
END
New in SaaS
FOR ALL LINES TABLE_Product index WITHOUT FILTER
IF TABLE_Product.Discount[Index] > 0 THEN
// Line processing
END
END
Syntax

Browsing the control elements (Table, List Box and Looper) Hide the details

FOR ANY LINE [<Indice> [, <Compteur>]] FROM <Champ> [WITHOUT FILTER]
  ...
END
<FOR EACH ROW>:
Marks the beginning of the statement block.
<Subscript>: Optional
Optional Integer variable. For each iteration, contains the index of the current row.
<Counter>: Optional
Optional Integer variable. This variable counts the number of iterations.
<Control>: Control name
Field to browse: List Box control, Table control or RepeatString field.
<WITHOUT FILTER>: Optional
New in SaaS
Signals that filters implemented by users via the AAF (Automatic Functionalities of your applications) will not be taken into account when browsing lines in the Table control field.
Can only be used when browsing a Table control.
Note: This feature is only available from WINDEV Suite SaaS 2025 - Update 3.
For more details, see Using new features exclusive to WINDEV Suite SaaS 2025.

Browsing the selected elements Hide the details

FOR EACH SELECTED ROW [<Index>, [<Counter>]] OF <Control>

    ...
END
<FOR EACH SELECTED ROW>:
Marks the beginning of the statement block.
<Subscript>: Optional
Integer variable. For each iteration, contains the index of the current selected row.
<Counter>: Optional
Optional Integer variable. This variable counts the number of iterations (number of selected rows for example).
<Control>: Control name
Field to browse: List Box control, Table control or RepeatString field.
Remarks

Syntax 1: Browse field elements

This syntax is used to browse all the rows, visible or not, of a List Box, Table or Looper control.
For each row browsed:
  • <Control name> returns the index of the current row. <Index> can also be used to find out the index of the current row.
  • <Control name>[<Control name>] returns all the columns separated by TAB characters. This syntax is equivalent to <Nom du champ>[<Indice>].
  • <Column name> returns the column value for the row currently browsed.
The browse has no effect on the current selection.
The behavior is undefined if the number of control elements is modified during the browse.
New in SaaS
If the WITHOUT FILTER is specified when browsing a Table field, this syntax allows you to browse all the lines in a Table field, regardless of the filters specified by the user via the AAF (Automatic Application Features).
Filters implemented by programming are taken into account.
This syntax can be used, for example, to search for an element in a hidden column of the Table control.
Note: This feature is only available from WINDEV Suite SaaS 2025 - Update 3.
For more details, see Using new features exclusive to WINDEV Suite SaaS 2025.

Syntax 2: Browse selected field elements

This syntax is used to browse all the selected rows, visible or not, of a List Box, Table or Looper control.
For each row browsed:
  • <Control name> returns the index of the current selected row. <Indice> also displays the index of the currently selected line.
  • <Control name>[<Control name>] returns all the columns separated by TAB characters.
  • <Column name> returns the column value for the row currently browsed. It is also possible to use the syntax: <Colonne>[<Indice>]
Behavior change in version 12: Before version 12, the path had no influence on the current selection.. From now on, the current row in the table is always moved during the browse.
The behavior is undefined if the number of control elements is modified during the browse.

Browsing the rows of a Table control

When browsing the rows of a Table control:
  • the display of this Table control is locked. MultitaskRedraw is ignored.
  • the selected rows and/or the current row must not be modified (TableSelectMinus, TableSelectPlus, ...).
  • for a Table control based on a data file, in the browse loop, the current record is the record processed by the browse.
Minimum version required
  • Version 10
This page is also available for…
Comments
FOR EACH ROW... Locks the display of the Table
If you try to use For Each Row of table... to alter the display of a table -
This will not work.
FOR EACH ROW of Table_SomeData
If col_amount < 0 Then
col_Amount..brushcolor = LightRed
END
END
This does work-
FOR Row = 1 _to_ Table_SomeData..occurrence
If Table_SomeData[nRow].col_amount < 0 Then
Table_SomeData[nRow].col_Amount..brushcolor = LightRed
END
END

Chris
01 Mar. 2018

Last update: 05/14/2025

Send a report | Local help