Promotic

AddFilter - metoda objektu PmaTrendGroup

Popis:
K existujícímu filtru se přidá filtr pro filtraci hodnot jedné proměnné. Metoda musí být volána vždy po volání metody CreateFilter, která určuje časový rozsah dotazu. Metodu lze volat opakovaně a vytvořit tak více filtrů pro jednu nebo i více proměnných (pro jednu proměnnou lze vytvořit maximálně dva filtry). Výsledný filtr, který se vytvoří voláním metody CreateFilter a opakovaným voláním metody AddFilter se předává metodě GetData.
Syntaxe:
Variant AddFilter(Variant vFilter, String sTrend, String sFilterType, Double nVal1)
Parametry:
vFilter(Variant) Hodnota filtru vytvořená voláním metody CreateFilter, případně modifikovaná metodou AddFilter.
sTrend(String) Název proměnné (viz karta "Data") nad kterou má být aplikován filtr.
sFilterType(String) Typ filtru, určuje způsob testování hodnoty proměnné.
"gt" - Hodnota proměnné vyhovuje filtru, pokud je větší než hodnota v parametru vVal1.
"ge" - Hodnota proměnné vyhovuje filtru, pokud je větší nebo rovno hodnotě v parametru vVal1.
"le" - Hodnota proměnné vyhovuje filtru, pokud je menší nebo rovno hodnotě v parametru vVal1.
"lt" - Hodnota proměnné vyhovuje filtru, pokud je menší než hodnota v parametru vVal1.
nVal1(Double) Hodnota, vůči které jsou testovány hodnoty proměnné
Příklad1:
Zjistí trendovaná data v časovém rozsahu <aktuální čas - 1 hodina, aktuální čas>.
Trendovaná data jsou filtrována a jsou vrácena v podobě matice dat jen hodnoty časů a proměnných a1,a2, kdy proměnná a1 je v rozsahu od 30 do 70.
JavaScriptVBScriptVyber a zkopíruj do schránky

var tNow, vFilter, aData;
tNow = Pm.Time;
vFilter = oTrend.CreateFilter(tNow -1 / 24, 1, tNow, 1, -1);
vFilter = oTrend.AddFilter(vFilter, "a1", "lt", 70);
vFilter = oTrend.AddFilter(vFilter, "a1", "gt", 30);
aData = oTrend.GetData("time;a1;a2", vFilter);

if (Pm.IsValid(aData))
{
Pm.Debug("Čas první hodnoty je " + aData.GetItem(0, 0));
Pm.Debug("Hodnota proměnné a1 v tomto čase je " + aData.GetItem(1, 0));
Pm.Debug("Hodnota proměnné a2 v tomto čase je " + aData.GetItem(2, 0));
}
Příklad2:
Jsou vráceny spočítané hodnoty, které jsou vráceny v poli hodnot podle pořadí zadání v metodě GetData.
Výpočet probíhá nad všemi daty v časovém rozsahu dle zadáni v metodě CreateFilter.
Data nejsou filtrována podle hodnot.
JavaScriptVBScriptVyber a zkopíruj do schránky

var tNow, vFilter, aData;
tNow = Pm.Time;
vFilter = oTrend.CreateFilter(tNow -1 / 24, 1, tNow, 1, -1);
aData = oTrend.GetData("avg(a1);avg(a1;weighted);min(a1);count(a1);avg(a2);avg(a2;weighted);min(a2);count(a2)", vFilter);

if (Pm.IsValid(aData))
{
Pm.Debug("Průměrné hodnoty proměnných a1,a2 jsou " + aData.GetItem(0) + "; " + aData.GetItem(4));
Pm.Debug("Vážené průměry proměnných a1,a2 jsou " + aData.GetItem(1) + "; " + aData.GetItem(5));
Pm.Debug("Minimální hodnoty proměnných a1,a2 jsou " + aData.GetItem(2) + "; " + aData.GetItem(6));
Pm.Debug("Počty hodnot proměnných a1,a2 jsou " + aData.GetItem(3) + "; " + aData.GetItem(7));
}
Příklad3:
Jsou vráceny spočítané hodnoty, které jsou vráceny v poli hodnot podle pořadí zadání v metodě GetData.
Výpočet probíhá nad daty v časovém rozsahu dle zadáni v metodě CreateFilter a jsou filtrována dle hodnot dle filtru metody AddFilter.
JavaScriptVBScriptVyber a zkopíruj do schránky

var tNow, vFilter, aData;
tNow = Pm.Time;
vFilter = oTrend.CreateFilter(tNow -1 / 24, 1, tNow, 1, -1);
vFilter = oTrend.AddFilter(vFilter, "a1", "lt", 70);
vFilter = oTrend.AddFilter(vFilter, "a1", "gt", 30);
aData = oTrend.GetData("avg(a1);avg(a1;weighted);min(a1);count(a1);avg(a2);avg(a2;weighted);min(a2);count(a2)", vFilter);

if (Pm.IsValid(aData))
{
Pm.Debug("Průměrné hodnoty proměnných a1,a2 jsou " + aData.GetItem(0) + "; " + aData.GetItem(4));
Pm.Debug("Vážené průměry proměnných a1,a2 jsou " + aData.GetItem(1) + "; " + aData.GetItem(5));
Pm.Debug("Minimální hodnoty proměnných a1,a2 jsou " + aData.GetItem(2) + "; " + aData.GetItem(6));
Pm.Debug("Počty hodnot proměnných a1,a2 jsou " + aData.GetItem(3) + "; " + aData.GetItem(7));
}
© MICROSYS, spol. s r.o.