Aktuálna hodnota objektu

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).



Napíšte komentár