Prístup k aktuálnej hodnote objektu systému D2000 umožňuje funkcia D2_GetValue.
Deklarácia
D2_GetValue
(objName, attribute, refresh)
Parametre
objName
typ TEXT
Parameter typu text, ktorý vyjadruje meno objektu.
attribute
typ TEXT
Parameter typu text, ktorý vyjadruje požadovaný atribút hodnoty objektu.
refresh
Nepovinný parameter ľubovolného typu.
Popis
Funkcia vráti požadovaný atribút hodnoty daného objektu. Meno objektu je dané parametrom ObjName. Pri archívnych poliach je
možné použiť zápis: pole[3] – indexovanie, alebo pri štruktúrovaných premenných struct[2]^ItemName – prístup k položke. Atribút
hodnoty je daný parametrom Attribut. Ide o textové reťazce o dĺžke 3 znaky, ktoré sú zhodné s menami atribútov hodnoty objektu.
Nepovinný parameter Refresh slúži len pre vynútenie prepočtu funkcie. Potreba zavedenia parametra vyplýva so spôsobu akým MS Excel vykonáva prepočet výrazov
v bunke.
Výraz sa prepočíta ak:
došlo k zmene (ručnej) obsahu bunky (editácia výrazu),
došlo k zmene parametrov funkcie – odkaz na bunku ktorá sa zmenila.
Parametrom Refresh je možné iniciovať prepočet výrazu.
Príklad
Výraz v bunke:
= D2_GetValue("Sec", "")
Pri vyhodnotení výraz nadobudne hodnotu objektu Sec v momente vyhodnotenia. Ďalej sa hodnota v bunke nebude meniť! Znovunačítanie aktuálnej hodnoty dosiahneme
jedine ručnou editáciou výrazu
Výraz v bunke:
= D2_GetValue("Sec", "TIM")
Funkcia funguje podobne ako v predchádzajúcom prípade, ale jej návratová hodnota je čas vzniku hodnoty objektu (v systéme D2000 je ekvivalentný zápis Sec\TIM).
Uvedené dva výrazy (príklady) majú nepríjemnú vlastnosť: bunky ktoré ich obsahujú nebudú po otvorení zošita aktualizované. Ich obsah bude zodpovedať hodnote objektu
pri poslednej editácii bunky (a uložení zošita). Využitím nepovinného parametra Refresh je možné túto vlastnosť odstrániť.
Výraz v bunke:
= D2_GetValue("Sec", "", A3)
Funkcia funguje podobne ako v predchádzajúcom prípade. Využitím nepovinného parametra je navyše zabezpečený prepočet výrazu pri zmene hodnoty v bunke A3.
Ak do bunky A3 zapíšeme nasledujúci výraz:
= NOW()
bude výraz = D2_GetValue(“Sec”, “”, A3) prepočítaný aj pri otvorení zošita.
Ako parameter Refresh je vhodné použiť odkaz na bunku D2000_BT (bunka s týmto názvom je automaticky prepočítaná pri otvorení zošitu – pozri
Preddefinované bunky).
0 komentárov