ENTRY OnItemValidate(IN INT _refId, INT _row, INT _col, IN TEXT _value, BOOL _bValid)
; akcie
END OnItemValidate
Špeciálna obsluha:
ENTRY XXX_OnItemValidate(INT _row, INT _col, IN TEXT _value, BOOL _bValid)
; akcie
END XXX_OnItemValidate
Parametre
_refId
Pre globálnu obsluhu - povinný vstupný parameter typu Int.
XXX
Meno Referenčnej premennej pripojenej ku grafickému objektu bez úvodného znaku
"_".
_row, _col
Riadok, stĺpec políčka, ktorému je potrebné odsúhlasiť hodnotu.
_value
Nová hodnota políčka.
_bValidate
Výstupný parameter - príznak platnosti hodnoty.
Popis
Udalosť je generovaná zobrazovačom tyou Browser, ak užívateľ chce ukončiť
zmenu políčka. Políčko je identifikované jeho riadkom (_row) a stĺpcom (_col). Z dôvodu spätnej kompatiblity parameter
_col nereprezentuje index stĺpca v štruktúre, ale poradie stĺpca (z ľava) tak, ako je zobrazený. Editovaný stĺpec musí byť typu
Text.
Ak obsluha udalosti nastaví výstupný parameter _bValid na hodnotu @FALSE, užívateľovi nebude povolené ukončiť zmenu.
Ak obsluha udalosti nastaví výstupný parameter _bValid na hodnotu @TRUE, bude zmena políčka
akceptovaná.
Využitím udalosti je možné jednoducho vykonať kontrolu vstupu.
Príklad
V príklade obsluha udalosti zobrazovača typu Browser s pridelenou referenčnou
premennou _browser kontroluje, či užívateľom zadaná hodnota je menšia alebo rovná číslu riadka, na ktorom sa menené
políčko nachádza.
Ak je vstup v poriadku, užívateľovi bude ponúknuté políčko pod aktuálne meneným. Pri políčku na poslednom riadku sa vykoná prechod
na prvý riadok.
Zobrazovač v príklade zobrazuje štruktúrovanú premennú _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
Globálna obsluha udalosti podobne:
ENTRY OnItemValidate(IN INT _refId, INT _row, INT _col, IN TEXT _value, BOOL _bValid)
IF _refId = _browser THEN ;test určujúci, v ktorom zobrazovači došlo k udalosti
; akcie
ENDIF
END OnItemValidate
Poznámka
Od verzie 10.0.37 a vyššej nie je možné nastaviť ďalšie políčko na editáciu nastavením premenných
_row a _col. Túto funkcionalitu je možné dosiahnuť volaním funkcie %HI_EditItem (napr. z ENTRY OnItemChange).
0 komentárov