OnItemValidate

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:

Obsluha udalosti
Udalosti