Hodnoty z archívu - funkcia D2_ArchArr

Efektívnejší prístup k archívnym hodnotám zo systému D2000 umožňuje funkcia D2_ArchArr.


Deklarácia
D2_ArchArr
(archObjName, bt, et, step, attribute, bDirectionByRow, refresh)

Parametre
archObjName typ TEXT
  • Odkaz na jednu archívnu hodnotu
  • Odkaz na jednoduchú hodnotu objektu
  • V prípade štruktúrovanej premennej je to jedno políčko (SV.Struct[2]^Item),
    ináč je to meno objektu (napríklad meraný bod).
    V tomto prípade systém automaticky zabezpečí vyhľadanie "vhodného" archívneho objektu.
    Ak je stĺpec "Item" typu objekt, je možné zadať bezprostredne za menom stĺpca reťazec ",ALL" (napríklad SV.Struct[4]^Item,ALL).
    Vtedy sú získavané archívne hodnoty  pre objekt, na ktorý ukazuje príslušné políčko, nie pre políčko ako také.
bt typ ABS. ČAS Počiatočný čas archívneho bloku.
et typ ABS. ČAS Koncový čas archívneho bloku.
step typ INT Časový krok [s] v rámci archívneho bloku.
attribute typ TEXT Požadovaný atribút archívnej hodnoty.
bDirectionByRow

typ BOOL

Časové usporiadanie buniek v matici.
refresh   Nepovinný parameter.

Popis
Návratová hodnota funkcie je typu pole hodnôt. Táto vlastnosť ju predurčuje pre použite v tzv. Matici.
Niektoré vlastnosti poľa:
  1. Matica je súvislá oblasť jednej alebo viacerých buniek (vo všeobecnosti obdĺžniková).
  2. Výraz definujúci hodnotu buniek v matici je pre všetky bunky rovnaký.
  3. Zmenu výrazu v bunke je potrebné potvrdiť (ukončenie zmeny výrazu) kombináciou kláves CTRL+SHIFT+ENTER (Priamy dôsledok platnosti bodu 2 je ten, že MS Excel automaticky aktualizuje výrazy pre všetky bunky v aktuálnej matici).
  4. Vytvorenie matice je možné nasledovným postupom:
    1. Vyznačíme oblasť (skupinu buniek).
    2. Stlačíme klávesu F2 a následne zapíšeme do bunky potrebný výraz (napríklad =1).
    3. Editáciu výrazu ukončíme kombináciou kláves CTRL+SHIFT+ENTER.

    Týmto sme založili maticu z vyznačených buniek. Výraz vo všetkých bunkách bude rovnaký.

  5. Výraz pre bunku, ktorá je v matici, je v "Riadku vzorcov" uzatvorený do zložených zátvoriek: .
  6. Vymazať pole je možné jedine ako celok. Treba vyznačiť všetky bunky v poli.
  7. Pri vyhodnocovaní buniek je výraz (pre všetky bunky rovnaký) vyhodnotený len 1 krát. Ak tento nadobudne hodnotu typu pole, hodnoty buniek v poli budú zodpovedať jednotlivým hodnotám v poli.

Funkcia vráti pole požadovaných atribútov archivovaných hodnôt (parameter attribut – význam pozri funkciu D2_GetValue) daného archívneho objektu archObjName. Parametre bt, et určujú časový interval archívneho bloku a parameter step definuje prevzorkovanie hodnôt v archíve. Parameter bDirectionByRow určuje časové usporiadanie buniek v matici. Má význam len pri maticiach, ktoré majú viac riadkov a zároveň viac stĺpcov. Pri hodnote TRUE (PRAVDA) sú hodnoty (usporiadané podľa času vzostupne) vkladané do buniek po riadkoch. V opačnom prípade sú hodnoty do buniek vkladané po stĺpcoch.

Parameter refresh má zhodnú úlohu, ako pri funkcii D2_GetValue.
Čas hodnoty z archívu je určený vzájomnou polohou bunky, ktorá obsahuje volanie funkcie a maticou, v ktorej sa nachádza.


Príklad
Ak sú parametre pre archívny blok napríklad:
BT = 10:00:00 1.1.2000
ET = 12:00:00 1.1.2000
STEP = 30*60 = 1800 (1/2 hodiny)

budú časy jednotlivých hodnôt v bunkách v závislosti od rozsahu matice a parametra bDirectionByRow nasledovné:

  1. Matica A1:A6, bDirectionByRow=FALSE alebo TRUE


  2. Matica A1:B3, bDirectionByRow=FALSE:


  3. Matica A1:B3, bDirectionByRow=TRUE:

Pre hodnoty, ktoré sú mimo žiadaný interval je návratová hodnota funkcie chyba: #Value (#Hodnota), alebo hodnota bunky s menom SUPP_NO_ARCH_DATA, ak existuje (pozri Preddefinované bunky).



Napíšte komentár