Funkcia vykonáva vybraný typ operácie nad hodnotami vektorov _values a _groupValues pričom ich páruje na základe vektorov _valuesGoups a _groups. Vektor _valuesGoups každej hodnote vektora _values definuje skupinu. Vektor _groupsValues každej skupine (vektor _groups) definuje hodnotu (koeficient).
Výsledný vektor je rovnakej dĺžky a typu ako vektor _values a hodnoty, pre ktoré neexistuje príslušná skupina vo vektore skupín len kopíruje.
VECTOR %GroupOperation( INT _opType, VECTOR _values VECTOR _valuesGroups, VECTOR _groupsValues, VECTOR _groups ) |
| _opType | |
| _values | Vektor zdrojových hodnôt. |
| _valuesGroups | Vektor skupín zdrojových hodnôt. |
| _groupsValues | Vektor hodnôt (koeficientov) skupín. |
| _groups | Vektor skupín. |
-- Vektor načíta zdrojové hodnoty a vektorom Calendar.WorkingDay,
-- vracajúcim 0 - nepracovný deň a 1 - pracovný deň, každej hodnote pridelí typ dňa.
-- Nepracovným dňom priradí koeficient 1,5 a pracovným 1.
-- Zdrojové hodnoty prenásobí príslušným koeficientom a výsledok vráti.
VECTOR _v, _groups, _groupsValues;
%CreateVector(_groups, 2);
%CreateVector(_groupsValues, 2);
-- nepracovné dni
_groups[1] := 0
_groupsValues[1] := 1.5
-- pracovné dni
_groups[2] := 1
_groupsValues[2] := 1
_v := %GroupOperation(
%OP_Mul,
%LoadVectorData("Vector.Src", _BT, _ET, _STEP)
%LoadVectorData("Calendar.WorkingDay", _BT, _ET, _STEP),
_groupsValues,
_groups
);
RETURN _v; |