Promotic

GetData - metoda obiektu PmaTrendGroup

Opis:
Zwraca zapisane dane w przedziale określonym przez parametr vFilter. Według sposobu wytworzenia vFilter są zwrócona albo wszystkie dane albo wartości są wyfiltrowane, jeżeli jest wykorzystane filtrowanie przy pomocy AddFilter.
Metoda może zwracać także obliczoną wartość lub tablicę obliczonych wartości z danych odpowiednich dla określonego filtra, patrz określenie parametru sWhat.
Składnia:
Array GetData(String sWhat, Variant vFilter)
Parametry:
sWhat(String) Specyfikacja tego, co ma zostać zwrócone:

Można wprowadzić listę danych, których wartości mają zostać zwrócone:
- "a1;" lub "a1;a2;a3;" - Jeżeli ma zostać zwrócona tablica zmiennych karty "Dane".
Jest konieczne zachowanie kolejności według kolejności w karcie.
Na przykład jeżeli dane w karcie są w kolejności a1,a2,a3,..., wtedy w parametrze można wprowadzić na przykład "a1;a3;", lecz "a3;a1" jest już błędnym zapisem.
- "time;" - Jeżeli ma zostać zwrócona tablica czasów.
Wybór czasu można zmienić przez wprowadzenie "time:winter;", wtedy wszytkie wartości czasu zostaną zwrócone jako "czas zimowy", w innym przypadku będą jako "czas lokalny".
- "attr;" - Jeżeli ma zostać zwrócona tablica atrybutów rekordu.
- "*data;" - Oznacza wszystkie zmienne z wyjątkiem czasu i atrybutu ("time;*data;" zwraca czas oraz wartości wszystkich danych).
- "*;" - Zwraca czas, atrybut oraz wartości wszystkich danych.


Można wprowadzić również funkcję obliczeniową, której rezultat ma zostać zwrócony. Funkcje można łączyć przy pomocy znaku ;, na przykład "avg(a1);min(a1)". Wspierane są następujące funkcje:
- "avg(xx)" - Metoda zwraca średnią zmiennej xx z wartości spełających warunki filtrowania określone w filtrze vFilter.
- "avg(xx;weighted)" - Metoda zwraca średnią ważoną zmiennej xx z wartości spełających warunki filtrowania określone w filtrze vFilter. Wagą wartości jest tu długość trwania tej wartości do czasu zapisu kolejnej wartości.
- "min(xx)" - Metoda zwraca wartość minimalną zmiennej xx z wartości spełających warunki filtrowania określone w filtrze vFilter.
- "max(xx)" - Metoda zwraca wartość maksymalną zmiennej xx z wartości spełających warunki filtrowania określone w filtrze vFilter.
- "sum(xx)" - Metoda zwraca sumę wszystkich wartości zmiennej xx z wartości spełających warunki filtrowania określone w filtrze vFilter.
- "count(xx)" - Metoda zwraca ilość wartości zmiennej xx z wartości spełających warunki filtrowania określone w filtrze vFilter.


Można wprowadzić tylko lista zmiennych lub funkcja obliczeniowa - lecz nie jednocześnie. Na przykład "avg(0);a1" jest BŁĘDNYM ZAPISEM.
vFilter(Variant) Wartość określająca na przykład czasowy zakres uzyskiwanych danych (czas od, czas do, ilość punktów, itd.), ewentualnie określa, czy dane mają być filtrowane według wartości. Jest wytworzony przez wywołanie metod CreateFilter, AddFilter.

Filtr wartości (filtr dla poszczególnych wartości dodany przy pomocy metody AddFilter) będzie stosowany w następujący sposób:
Jeżeli w parametrze sWhat znajduje się lista zmiennych, wtedy mogłoby dojść do przypadków, że dla każdej wartości byłaby inna ilość wierszy (inna ilość zapisanych danych). Dlatego zostanie wykonany "przekrój wierszy" - tzn. zostaną zwrócone tylko te wiersze, które są wsólne dla wszystkich wartości.
Jeżeli w parametrze sWhat znajduje się funkcja obliczeniowa, wtedy poszczególne filtry są stosowane tylko dla obliczenia tych danych i nie będą wpływać na obliczenia innych danych.
Wartość zwrotna:
Zwraca wymagane dane w formie 1- lub 2-wymiarowej tablicy wartości (obiekt PmArray dla JavaScript lub typ danych Array dla VBScript).
Jeżeli takich danych nie ma lub jeżeli doszło do błędu, wtedy metoda zwraca: null dla JavaScript lub Empty dla VBScript (można sprawdzić przy pomocy metody Pm.IsValid).
Jeżeli w parametrze sWhat znajduje się funkcja do obliczenia, wtedy zwracana jest albo wartość prosta albo tablica 1-wymiarowa obliczonych wartości.
Notatka:
Wykonywać obliczenia statystyczne nad tablicą danych może także metoda Pm.ArrayOper.
Przykład1:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oTrend = pMe.Pm("/Trends");
var arr = oTrend.GetData("time;*data;", vFilter);
Przykład2:
Patrz przykłady w metodach CreateFilter oraz AddFilter
© MICROSYS, spol. s r.o.