Soma variável de grupo iReport

Gostaria de saber como fazer a soma de uma variável de grupo no iReport do tipo Timestamp,
no caso eu tenho horas trabalhadas, e gostaria de um total de horas/dias trabalhados neste talhão (grupo) a partir de uma variável deste agrupamento.

Consegui resolver.
Para isso:
1º tive que converter as horas em minutos no SQL:

( EXTRACT(HOUR FROM MDO.HORTRABALHADAS) *60 +
 EXTRACT(MINUTE FROM MDO.HORTRABALHADAS)) as MINUTOS

2º Criei uma variável no ireport que recebe o campo minutos da pesquisa,
e mudei suas propriedades

Variable Class : java.math.BigDecimal
Calculation : Sum
Reset type : Group
Reset Group: “seu agrupamento”

3º Criei dois Fields para exibição no group footer, um para hora e outro para minutos e mudei a expressão de ambos para converter em suas respectivas medidas:

Horas:

($V{totalHrsTrabalhadas}.divide(new java.math.BigDecimal(60),2,2)).intValue() +":"

Minutos:

$V{totalHrsTrabalhadas}.remainder(new java.math.BigDecimal(60)) < new java.math.BigDecimal(10)?
“0”+$V{totalHrsTrabalhadas}.remainder(new java.math.BigDecimal(60)) : $V{totalHrsTrabalhadas}.remainder(new java.math.BigDecimal(60))

Postei a solução que eu encontrei aqui porque não achei outras mais simples na internet.

1 curtida