Как суммировать непоследовательные ячейки в шаблоне jxls - PullRequest
1 голос
/ 09 сентября 2010

Я создаю отчет xls из шаблона, который использует данные, полученные из базы данных Oracle.У меня есть группа и подгруппа.В подгруппе я создаю таблицу, в которой отображаются значения ПРЕМИУМ, а затем итоги с использованием:

$[SUM(I18)]

Поскольку значения здесь являются последовательными, эта формула преобразуется в SUM (I18: I35).

После того, как все подгруппы отображаются, я хочу показать сумму всех PREMIUMS из подгрупп, для этого я использую:

$[SUM(I21)]

jxls достаточно умен, чтобы преобразовать его, например, в SUM (I36, I46, I67, ...) И вот тут я сталкиваюсь с проблемой.Существует некоторое ограничение на количество параметров, которые можно передать в функцию SUM.Любые идеи, как я могу сделать СУММ для коллекции в шаблоне xls?

Мой шаблон выглядит так:

<jx:forEach items="${group.items}"  groupBy="client">     
 <jx:forEach items="${group.items}"  groupBy="contract">    
  <jx:forEach items="${group.items}" var="result">   
  PREMIUM  
  ${result.premium}  
  </jx:forEach>  
 Group Total $[SUM(I18)]  
 </jx:forEach>   
 Total $[SUM(I20)] // This is where the problem
                   // is because Group Total are not consecutive 
</jx:forEach> 

Я также попробовал:

 ${group.items.premium}
 Total $[SUM(I22)]

исделал строку с $ {group.items.premium} скрытой, но когда шаблон сгенерирован, он скрывает строки ...

Также, если вы знаете хороший ресурс с учебником jsxl или чем-то подобным, пожалуйста, напишитеэто здесь.Я действительно изо всех сил, чтобы найти что-то спуск ...

1 Ответ

1 голос
/ 11 октября 2010

сработает ли для вас агрегат jxls?

т. $ {sum (premium): group.items} // суммируем все премии в каждой «клиентской» группе

<jx:forEach items="${group.items}"  groupBy="client">     
 <jx:forEach items="${group.items}"  groupBy="contract">    
  <jx:forEach items="${group.items}" var="result">   
  PREMIUM  
  ${result.premium}  
  </jx:forEach>  
 Group Total $[SUM(I18)]  
 </jx:forEach>   
 ${sum(premium):group.items} 
</jx:forEach> 
...