Funkcia vykoná výpočet EDA-L predpisu a na výsledných hodnotách spočíta vybranú štatistiku.

Deklarácia

%EDA_StatCalcFunctionRec(
   INT in statType,
   INT in vectorType,
   TEXT in funcBody,
   TIME in bt,
   TIME in et,
   INT/TEXT in period,
   REC in params,
   REAL out value,
   INT out errorCode
  );

Parametre

  Parameter Dátový typ Typ Popis
1 statType INT in Typ štatistiky.
2 vectorType INT in Typ vektora.
3 funcBody TEXT in Predpis funkcie v EDA-L.
4 bt TIME in Začiatok obdobia pre načítanie hodnôt.
5 et TIME in Koniec obdobia pre načítanie hodnôt.
6 period INT/TEXT in Perióda načítania hodnôt.
7 params REC in Štruktúra voliteľných parametrov.
8 value REAL out Výsledná hodnota.
9 errorCode INT out Chybový (návratový) kód.

Obsah štruktúry voliteľných parametrov verzie 1:

  Parameter Dátový typ Default Popis
1 structVersion INT 1 Verzia štruktúry - 1.
2 cacheId INT 0 Identifikátor cache.
3 valueType INT 3 Typ hodnoty.
4 vectorPeriodBeginTime TIME   Počiatočný čas, od ktorého sa aplikuje krok vektora (pre všeobecné periodické vektory).
5 vectorPeriodStepBase INT   Veľkosť základného kroku periodického vektora (pre všeobecné periodické vektory).
6 vectorPeriodStepCount INT   Počet základných krokov v jednej perióde vektora (pre všeobecné periodické vektory).
7 vectorPeriodTimeZone INT   Offset časového pásma periódy vektora v sekundách.
8 isIntegral BOOL @FALSE Príznak integrálnosti hodnôt.
9 viewRoundType INT 0 Typ zaokrúhľovania.
10 viewRoundDecPlaces INT 0 Počet desatinných miest zaokrúhlenia.
11 useAbsValues BOOL @FALSE Príznak použitia absolútnych hodnôt pre štatistiku.
12 userName TEXT   Meno užívateľa.
13 version INT/TEXT   Identifikátor (id/kód) verzie.
14 envName TEXT   Názov EDA prostredia, ktoré sa použije pre výpočet.
15 paramBlockId INT   Identifikátor bloku parametrov.

Príklad použitia

 INT _Stat_Sum = 0
 INT _Stat_Min = 1
 INT _Stat_Max = 2
 INT _Stat_Avg = 3
 
 BEGIN
  INT _errorCode
  TEXT _funcBody
  TIME _bt, _et
  REAL _value
  RECORD NOALIAS (SD.EDA_StatCalcFunction_Params_V1) _params
 
  _funcBody := "VEKTOR _v;" + %Chr(10)
  _funcBody := _funcBody + "INT _i;" + %Chr(10)
  _funcBody := _funcBody + "%CreateVektor(_v, _BT, _ET, _STEP);" + %Chr(10)
  _funcBody := _funcBody + "FOR _i = 1 TO %ValuesNr(_v) LOOP" + %Chr(10)
  _funcBody := _funcBody + " _v[_i] := %Mod(_i + 4, 10) + 1;" + %Chr(10)
  _funcBody := _funcBody + "END LOOP;" + %Chr(10)
  _funcBody := _funcBody + "RETURN _v;"
 
  _bt := %TimeFromItems(2015, 7, 10, 0, 0, 0, 0)
  _et := %TimeFromItems(2015, 7, 10, 20, 0, 0, 0) - 1
  _params[1]^structVersion := 1
 
  ; vypocita funkciu a z jej hodnot spravi priemer
  CALL %EDA_StatCalcFunctionRec(_Stat_Avg, 7, _funcBody, _bt, _et, 0, _params, _value, _errorCode)
  IF _errorCode != 0 | !_value\VLD | _value != 5.5 THEN
    RETURN
  ENDIF
 END 
Napíšte komentár