Promotic

GetData - metoda objektu PmaTrendGroup

Popis:
Vrací uchovaná data v zadaném rozsahu zadaným parametrem vFilter. Podle způsobu vytvoření vFilter jsou buď vrácena všechna data nebo jsou hodnoty filtrovány, pokud je použito filtrování pomocí AddFilter.
Metoda může vracet i spočítanou hodnotu nebo pole vypočtených hodnot z hodnot proměnných vyhovujících zadanému filtru, viz zadání parametru sWhat.
Syntaxe:
Array GetData(String sWhat, Variant vFilter)
Parametry:
sWhat(String) Specifikace co se má vrátit:

Lze zadat seznam proměnných, jejíž hodnoty mají být vráceny:
- "a1;" nebo "a1;a2;a3;" - Pokud se má vrátit pole proměnných karty "Data".
Je nutno zachovat pořadí podle pořadí v kartě.
Například pokud pořadí proměnných v kartě je a1,a2,a3,..., pak v parametru lze zadat například "a1;a3;", ale "a3;a1" je chybně.
- "time;" - Pokud se má vrátit pole časů.
Výběr času lze změnit zadáním "time:winter;", a tehdy se vrátí všechny hodnoty času jako "zimní čas", v jiném případě jako "lokální čas".
- "attr;" - Pokud se má vrátit pole atributů záznamu.
- "*data;" - Znamená všechny proměnné mimo času a atributu ("time;*data;" vrací čas a všechny datové veličiny).
- "*;" - Vrací čas, atribut a všechny datové proměnné.


Lze zadat také funkci pro výpočet, jejíž výsledné hodnoty mají být vráceny. Funkce lze zřetězovat pomocí znaku ;, například "avg(a1);min(a1)". Jsou podporovány následující funkce:
- "avg(xx)" - Metoda vrací průměrnou hodnotu proměnné xx z hodnot splňujících filtrační podmínky dané filtrem vFilter.
- "avg(xx;weighted)" - Metoda vrací váženou průměrnou hodnotu proměnné xx z hodnot splňujících filtrační podmínky dané filtrem vFilter. Váhou hodnoty je zde délka jejího trvání do doby uložení následující hodnoty.
- "min(xx)" - Metoda vrací minimální hodnotu proměnné xx z hodnot splňujících filtrační podmínky dané filtrem vFilter.
- "max(xx)" - Metoda vrací maximální hodnotu proměnné xx z hodnot splňujících filtrační podmínky dané filtrem vFilter.
- "sum(xx)" - Metoda vrací součet všech hodnot proměnné xx z hodnot splňujících filtrační podmínky dané filtrem vFilter.
- "count(xx)" - Metoda vrací počet hodnot proměnné xx z hodnot splňujících filtrační podmínky dané filtrem vFilter.


Lze zadat pouze seznam proměnných nebo funkce pro výpočet - ne však zároveň. Například "avg(0);a1" je ŠPATNĚ.
vFilter(Variant) Hodnota určující například časový rozsah získávaných dat (čas od, čas do, počet bodů, atd.), případně určuje, zda data mají být filtrována dle hodnoty. Je vytvořen voláním metod CreateFilter, AddFilter.

Hodnotový filtr (filtr pro jednotlivé proměnné přidaný metodou AddFilter) se bude aplikovat následujícím způsobem:
Pokud v parametru sWhat je seznam proměnných, pak by nastal případ že pro každou proměnnou by byl jiný počet řádku (jiný počet uložených hodnot). Provede se proto "průnik řádků" - tzn. vrátí se pouze řádky, které jsou společné všem proměnným.
Pokud v parametru sWhat je funkce pro výpočet, pak se hodnotové filtry pro jednotlivé proměnné budou aplikovat pouze pro výpočet těchto proměnných a nebudou ovlivňovat výpočet jiných proměnných.
Vrácená hodnota:
Vrací žádaná data jako 1- nebo 2-rozměrné pole hodnot (objekt PmArray pro JavaScript nebo datový typ Array pro VBScript).
Pokud taková data nejsou nebo pokud došlo k nějaké chybě, pak metoda vrací: null pro JavaScript nebo Empty pro VBScript (lze testovat metodou Pm.IsValid).
Pokud v parametru sWhat je funkce pro výpočet, pak se vrací buď jednoduchá hodnota nebo 1-rozměrné pole spočítaných hodnot.
Poznámka:
Statistické výpočty nad polem dat umí také metoda Pm.ArrayOper.
Příklad1:
JavaScriptVBScriptVyber a zkopíruj do schránky

var oTrend = pMe.Pm("/Trends");
var arr = oTrend.GetData("time;*data;", vFilter);
Příklad2:
Viz příklady v metodách CreateFilter a AddFilter
© MICROSYS, spol. s r.o.