Description
Occurs when a field in a DataWindow control has been modified and loses focus (for example, the user presses Enter, the Tab key, or an arrow key or clicks the mouse on another field within the DataWindow). It occurs before the change is applied to the item. ItemChanged can also occur when the AcceptText or Update method is called for a DataWindow control or DataStore object.
PowerBuilder event information
Event ID: pbm_dwnitemchange
Argument |
Description |
---|---|
row |
Long by value. The number of the row containing the item whose value is being changed. |
dwo |
DWObject by value. A reference to the column containing the item whose value has been changed. Dwo is a reference to the column control, not the name of the column. |
data |
String by value. The new data the user has specified for the item. |
Return codes
Set the return code to affect the outcome of the event:
0 -- (Default) Accept the data value
1 -- Reject the data value and do not allow focus to change
2 -- Reject the data value but allow the focus to change
For information on setting the return code in a particular environment, see About return values for DataWindow events.
Usage
The ItemChanged event does not occur when the DataWindow control itself loses focus. If the user clicks on an Update or Close button, you will need to write a script that calls AcceptText to see if a changed value should be accepted before the button's action occurs. For information on the right way to do this, see AcceptText.
Obsolete techniques in PowerBuilder
Information formerly provided by the GetText method is available in the data argument.
Instead of calling SetActionCode, use a RETURN statement with a return code.
Examples
This example uses the ItemChanged event to provide additional validation; if the column is emp_name, it checks that only letters were entered in the column:
IF Dwo.name = "Emp_name" THEN IF NOT Match(Data, "^[A-za-z]$") THEN RETURN 2 END IF END IF
See also