OnItemValidate
Udalosť OnItemValidate
Deklarácia
Globálna obsluha:
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).
Súvisiace stránky: