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
// For each user selected in TABLE_User
FOR EACH SELECTED ROW OF TABLE_User
	// Send an email
	Proc_SendMessage(COL_Name, COL_Email)
END
Syntax

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

FOR EACH ROW [<Index> [, <Counter>]] OF <Control>
  ...
END
<FOR EACH ROW>:
Marks the beginning of the statement block.
<Subscript>:
Optional Integer variable. For each iteration, contains the index of the current row.
<Counter>:
Optional Integer variable. This variable counts the number of iterations.
<Control>:
Field to browse: List Box control, Table field or RepeatString field.

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>:
Integer variable. For each iteration, contains the index of the current selected row.
<Counter>:
Optional Integer variable. This variable counts the number of iterations (number of selected rows for example).
<Control>:
Field to browse: List Box control, Table field 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 subscript 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 <Control name>[<Subscript>].
  • <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.

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 subscript 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. You can also use the following 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: 10/31/2024

Send a report | Local help