Модуль выполнения расчета ячеек
var Evaluator = function(Unmapper){
var self = this;
self.Context = Unmapper.Context;
// Ячейки, которые нужно посчитать
self.HowToCalculate = Unmapper.HowToCalculate;
// Посчитанные ячейки
self.Calculated = {};
// Какие поля нужно запросить при загрузке первичных ячеек
// в зависимости от кода валюты в контексте
self.Valutas = {"RUB":"ReportValue","USD":"ReportValue1","EUR":"ReportValue2"};
// Выбранное запрашиваемое поле
self.Field = 'Value';
// Публичная функция, которая вызвается снаружи
self.Calculate = function(done){...}
// Внутренние функции
// Убираем промежуточные переменнные
self.FilterResults = function(done){...}
// Хэш-таблица с информацией о загруженных первичных ячейках
self.PrimariesInfo = {...};
// Загрузка первичных ячеек
self.LoadPrimaries = function(Primaries,done){...}
// Ограничение на глубину вложенности переменных
self.maxRecursions = 200;
self.currentRecursion = 1;
// Рекурсивная функция вычисления
self._calculate = function(done){...}
// Проверка на то, что все зависимые переменные вычислены
self._isCalculateble = function(Vars){...}
// Вычисление формулы
self._calculateFormula = function(CellName,Formula,Vars){...}
}Last updated