public function executeFunction(FunctionJob $function, ExecutionContext $context) { /* @var $argumentValue Value */ $argumentValue = current($function->getArguments()); $beforeSourceRow = $context->getCurrentSourceRow(); $sum = 0; foreach ($context->getCurrentSourceSet() as $row) { $context->setCurrentSourceRow($row); $value = $this->valueResolver->resolveValue($argumentValue, $context); if (is_numeric($value)) { $sum += $value; } } $context->setCurrentSourceRow($beforeSourceRow); return $sum; }
public function executeFunction(FunctionJob $function, ExecutionContext $context) { /* @var $result SelectResult */ $result = $this->resultSet; /* @var $argumentValue Value */ $argumentValue = current($function->getArguments()); $count = 0; $beforeSourceRow = $context->getCurrentSourceRow(); foreach ($context->getCurrentSourceSet() as $row) { $context->setCurrentSourceRow($row); $value = $this->valueResolver->resolveValue($argumentValue); if (!is_null($value)) { $count++; } } $context->setCurrentSourceRow($beforeSourceRow); return $count; }