AddFilter - metoda obiektu PmaTrendGroup
Opis:
Do istniejącego filtra doda filtr do filtracji wartości jednej zmiennej. Metoda musi być wywołana zawsze po wywołaniu metody
CreateFilter, która określa zakres czasu zapytania. Metoda może być wywoływana powtórnie i wytworzyć w ten sposób kilka filtrów dla jednej lub kilku zmiennych (dla jednej danej można wytworzyć najwyżej dwa filtry). Filtr, który jest wytworzony przez wywołanie metody
CreateFilter i powtarzane wywołanie metody
AddFilter jest następnie przekazany do metody
GetData.
Składnia:
Variant AddFilter(Variant vFilter, String sTrend, String sFilterType, Double nVal1)
Parametry:
vFilter | (Variant) Wartość filtra wytworzona przez wywołanie metody CreateFilter, ewentualnie zmieniona przy pomocy metody AddFilter. |
sTrend | (String) Nazwa zmiennej (patrz karta "Dane") dla której ma być wytworzony filtr. |
sFilterType | (String) Typ filtra, określa sposób sprawdzania wartości zmiennej.
"gt" - Wartość zmiennej jest zgodna z filtrem, jeżeli jest większe niż wartość w parametrze vVal1.
"ge" - Wartość zmiennej jest zgodna z filtrem, jeżeli jest większe lub równe niż wartość w parametrze vVal1.
"le" - Wartość zmiennej jest zgodna z filtrem, jeżeli jest mniejsze lub równe niż wartość w parametrze vVal1.
"lt" - Wartość zmiennej jest zgodna z filtrem, jeżeli jest mniejsze niż wartość w parametrze vVal1. |
nVal1 | (Double) Wartość, względem której są sprawdzane wartości zmiennej |
---|
Przykład1:
Stwierdzi trendowane dane w przedziale czasu <czas bieżący - 1 godzina, czas bieżący>.
Trendowane dane są filtrowane oraz zwrócone w formie macierzy danych tylko z wartościami czasów i zmiennych a1,a2, gdzie zmienna a1 znajduje się w zakresie od 30 do 70.
JavaScriptVBScriptWybierz oraz skopiuj do schowka
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("Czas pierwszej wartości wynosi " + aData.GetItem(0, 0));
Pm.Debug("Wartość zmiennej a1 w tym czasie wynosi " + aData.GetItem(1, 0));
Pm.Debug("Wartość zmiennej a2 w tym czasie wynosi " + aData.GetItem(2, 0));
}
Dim 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) Then
Pm.Debug("Czas pierwszej wartości wynosi " & aData(0, 0))
Pm.Debug("Wartość zmiennej a1 w tym czasie wynosi " & aData(1, 0))
Pm.Debug "Wartość zmiennej a2 w tym czasie wynosi " & aData(2, 0)
End If
Przykład2:
Są zwrócone obliczone wartości, które są zwrócone w tablicy wartości według kolejności wprowadzenia w metodzie
GetData.
Obliczenie przebiega nad wszystkimi danymi w przedziale czasu według ustawienia w metodzie
CreateFilter.
Dane nie są filtrowane według wartości.
JavaScriptVBScriptWybierz oraz skopiuj do schowka
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("Średnie wartości zmiennych a1,a2 wynoszą " + aData.GetItem(0) + "; " + aData.GetItem(4));
Pm.Debug("Ważone średnie zmiennych a1,a2 wynoszą " + aData.GetItem(1) + "; " + aData.GetItem(5));
Pm.Debug("Minimalne wartości zmiennych a1,a2 wynoszą " + aData.GetItem(2) + "; " + aData.GetItem(6));
Pm.Debug("Ilości wartości zmiennych a1,a2 wynoszą " + aData.GetItem(3) + "; " + aData.GetItem(7));
}
Dim 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) Then
Pm.Debug("Średnie wartości zmiennych a1,a2 wynoszą " & aData(0) & "; " & aData(4))
Pm.Debug("Ważone średnie zmiennych a1,a2 wynoszą " & aData(1) & "; " & aData(5))
Pm.Debug("Minimalne wartości zmiennych a1,a2 wynoszą " & aData(2) & "; " & aData(6))
Pm.Debug "Ilości wartości zmiennych a1,a2 wynoszą " & aData(3) & "; " & aData(7)
End If
Przykład3:
Są zwrócone obliczone wartości, które są zwrócone w tablicy wartości według kolejności wprowadzenia w metodzie
GetData.
Obliczenie przebiega nad danymi w przedziale czasu według określenia w metodzie
CreateFilter i są filtrowane według wartości według filtra metody
AddFilter.
JavaScriptVBScriptWybierz oraz skopiuj do schowka
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("Średnie wartości zmiennych a1,a2 wynoszą " + aData.GetItem(0) + "; " + aData.GetItem(4));
Pm.Debug("Ważone średnie zmiennych a1,a2 wynoszą " + aData.GetItem(1) + "; " + aData.GetItem(5));
Pm.Debug("Minimalne wartości zmiennych a1,a2 wynoszą " + aData.GetItem(2) + "; " + aData.GetItem(6));
Pm.Debug("Ilości wartości zmiennych a1,a2 wynoszą " + aData.GetItem(3) + "; " + aData.GetItem(7));
}
Dim 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) Then
Pm.Debug("Średnie wartości zmiennych a1,a2 wynoszą " & aData(0) & "; " & aData(4))
Pm.Debug("Ważone średnie zmiennych a1,a2 wynoszą " & aData(1) & "; " & aData(5))
Pm.Debug("Minimalne wartości zmiennych a1,a2 wynoszą " & aData(2) & "; " & aData(6))
Pm.Debug "Ilości wartości zmiennych a1,a2 wynoszą " & aData(3) & "; " & aData(7)
End If