Example #1
0
 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;
 }
Example #2
0
 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;
 }