SET dstIdent AS srcIdent [DIRECT] |
dstIdent | in | Identifikátor hodnoty typu ALIAS (alebo typu Objekt v prípade položky štruktúry), identifikátor riadku alebo celej štruktúry - cieľ hodnôt a asociácií. |
srcIdent | in | Identifikátor hodnoty typu ALIAS (alebo typu Objekt v prípade položky štruktúry), identifikátor riadku alebo celej štruktúry - zdroj hodnôt a asociácií. |
Akcia umožňuje použiť index riadku 0 v nasledovnom prípade:
SET dstIdent[0]^Col1 AS srcIdent[0]^Col2 pričomAkcia interne vykoná predpísané priradenie (SET AS) pre všetky riadky daného stĺpca.
Preto je potrebné, aby rozmery oboch štruktúr (dstIdent aj srcIdent) boli rovnaké.
ALIAS _a INT _i SET _a AS U.INT ; prvý test IF U.Int = _a THEN ENDIF ; druhý test _i := U.Int IF U.Int = _i THEN ENDIF |
ALIAS _a SET _a AS U.INT _a := 1 |
ALIAS _a SET _a AS U.Int _a := 1 ; prvé priradenie RECORD (SD.RecordDef) _lArr1 SET _lArr1[1]^Object AS U.Int _lArr1[1]^Object := 1 ; druhé priradenie |
SET SV.Struktura[1]^Object AS U.Int |
SV.Struktura[1]^Object := 1 |
RECORD (SD.RecordDef) _lArr1 REDIM _lArr1[2] SET _lArr1[1]^Object AS U.Int ; priradenie 1 SET _lArr1[2]^Object AS U.Int2 ; priradenie 2 SET _lArr1[1]^Object AS _lArr1[2]^Object ; priradenie 3 |
SET SV.Struktura[1]^Object AS U.Int ; priradenie 1 WAIT SET SV.Struktura[2]^Object AS U.Int2 ; priradenie 2 WAIT SET SV.Struktura[1]^Object AS SV.Struktura[2]^Object ; priradenie 3 WAIT |
RECORD (SD.RecordDef) _lArr1 REDIM _lArr1[2] SET _lArr1[1]^Object AS U.Int DIRECT ; priradenie 1 SET _lArr1[2]^Object AS U.Int2 DIRECT ; priradenie 2 SET _lArr1[1]^Object AS _lArr1[2]^Object DIRECT ; priradenie 3 SET _lArr1[1]^Object AS SV.Struktura[2]^Int DIRECT ; priradenie 4 |
Ak je známe len HOBJ štruktúrovanej premennej, nastavenie odkazu na jej políčko sa môže vykonať nasledovným spôsobom:
SET _locRec[2]^Object AS (HOBJ, ROW, COL) DIRECT
Napríklad:
; použité objekty ; SD.Active: Definícia štruktúry s jedným stĺpcom typu Objekt. Meno stĺpca je "Object". ; SV.Active: dvojriadková štruktúrovaná premenná typu SD.Active RECORD (SD.Active) _b BOOL _bOpenOk ; vytvorenie odkazu z políčka SV.Active[1]^Object na políčko v riadku 1, stĺpec 1 objektu s jednoznačným identifikátorom 2131 (HOBJ) ; ak objekt 2131 nie je typu štruktúrovaná premenná alebo index riadku alebo stĺpca je mimo rozsah, akcia neprebehne úspešne SET SV.Active[1]^Object AS (2131, 10, 10) DIRECT ; neúspešný priebeh predchádzajúcej akcie generuje Run-Time error WAIT ; vytvorenie odkazu z políčka _b[1]^Object na políčko v riadku 2, stĺpec 1 objektu s jednoznačným identifikátorom 24623 (HOBJ) ; na rozdiel od predchádzajúceho príkladu, musí byť objekt 24623 otvorený _bOpenOk := %OpenRefToObject(24623, @TRUE) IF _bOpenOk THEN SET _b[1]^Object AS (24623, 2, 1) DIRECT ENDIF |
!!! Akcia SET SV.Struktura[1]^Object AS U.Int (podobne ako priradenie hodnoty objektu) je spracovaná na strane procesu D2000 Server. Jej efekt sa prejaví po čase, v závislosti od zaťaženia systému. Na jej skutočnú realizáciu je možné v skripte počkať akciou WAIT !!!
Akcia umožňuje zmenu hodnoty typového ALIASu.
ALIAS (SD._System_Redundancy) _aT ALIAS (SD._System_Redundancy) _aT1 SET _aT AS SV._System_Redundancy SET _aT1 AS _aT |
BOOL _bOk ALIAS (SD._System_Redundancy) _aT INT _hbj ; príklad 1 _hbj := SV._System_Redundancy\HBJ SET _aT AS (_hbj) ; príklad 2 _hbj := %StrToHBJ("SV._System_Redundancy") _bOk := %OpenRefToObject(_hbj, @TRUE) SET _aT AS (_hbj) ; alebo príklad 3 ALIAS _a _hbj := %StrToHBJ("SV._System_Redundancy") _bOk := %OpenRefToObject(_hbj, @TRUE) SET _a AS (_hbj) SET _aT AS _a |