OnItemValidate

OnItemValidate

OnItemValidate picture event


Declaration

Global handler:

ENTRY OnItemValidate(IN INT _refId, INT _row, INT _col, IN TEXT _value, BOOL _bValid) ; script actions END OnItemValidate


Special handler:

ENTRY XXX_OnItemValidate(INT _row, INT _col, IN TEXT _value, BOOL _bValid) ; script actions END XXX_OnItemValidate

Parameters

_refId

Parameter of INT type (required for global handler).

XXX

Name of Reference variable connected to graphic object (without the character "_").

_row, _col

Row, column of the item, whose value must be validated.

_value

New item value.

_bValidate

Output parameter - value validity attribute.

Description

The picture event is being generated by the displayer of Browser type, if the user want to finish the editing of item. Item is defined by row (_row) and column (_col). Owing to the backward compatibility, the parameter _col does not represent the index of column in a structure, but the order of column (from left), as it is displayed. Edited column must be of Text type.

If the picture event handler sets the output parameter to the value @False, the user cannot carry out the change. If the picture event handler sets the output parameter to the value @True, the change will be accepted.
When using the picture event, it allows easy performing the input check.

Example

In the example below, the picture handler for the displayer of Browser type with the reference variable _browser checks whether a value entered by user is lower or equal to the number of the item row. If the input is OK, then user can edit the item placed bellow the current one. If the item is placed in last row, next item to edit will be in first row.

The Browser displays the structured variable _rec.

 

ENTRY browser_OnItemValidate(INT _row, INT _col, IN TEXT _value, BOOL _bValid) IF _col = 1 THEN INT _val _val := %StrToI(_value) IF !_val\VLD THEN _bValid := @FALSE ELSIF _val > _row THEN _bValid := @FALSE ELSE _bValid := @TRUE _row := _row+1 IF _row > _rec\DIM THEN _row := 1 ENDIF ENDIF ELSE _bValid := @TRUE ENDIF END browser_OnItemValidate BEGIN REDIM _rec[10] END

 

Global picture event handler:

 

ENTRY OnItemValidate(IN INT _refId, INT _row, INT _col, IN TEXT _value, BOOL _bValid)
IF _refId = _browser THEN ;test that determines the displayer in which the event occurred
; script actions
ENDIF END OnItemValidate

Note

Since the version 10.0.37 and higher, the next item for editing cannot be defined by the parameters _row and _col. This functionality is replaced by calling the function %HI_EditItem (for example from ENTRY OnItemChange).