Galera… boa tarde.
Estou com uma dificuldade imensa pra somar horas de funcionários no ireport.
Separados por código de funcionário deu certo, consigo fazer a soma das horas por query do banco de dados e mostrar por meio de subrelatorio.
Mas tenho um relatório que está com o grupo por setor e não por codigo de funcionário.
Precisaria saber o total de horas pelo Setor… o campo hora está vindo como String pra mim.
No menu do iReport clique no Visualizar/Variaveis do Relatório, clique no botão novo e de um nome para a váriavel. Depois em Variable Class Type defina a váriavel como java.lang.Double, em Calculation Type defina como Sum. Em Variable Expression defina o nome do Field que vc quer somar, EX: $F{PRODUTO}, EM Initial Value Expression digite new java.lang.Double(0) e clique em Ok para finalizar… Agora no menu do iReport clique no botão que tem o F, aquele de criar Fields… crie um Field (Campo) e depois de dois cliques no condenado, clique na aba TextField em Text Field Expression Class defina o campo como java.lang.Double(0) e em TextField Expression faça o seguinte… Faz de conta que vc definiu o nome da váriavel como TOTAL, então no TextField Expression vc deve colocar $V{TOTAL} e depois fecha a janela. Execute e veja se aonde vc colocou a variável $V{TOTAL} está aparecendo a soma de todos os elementos da coluna…
abrxs
Amigo, vou tentar com Double e volto dizendo se deu certo ou não… obg pela dica.
Amigo…
Deu o erro que eu pensei que daria.
Error filling print... java.lang.String cannot be cast to java.lang.Number
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
em que formato devo trazer essas horas?
Está vindo como String… mas meu banco trato como ‘time’ (Sql Server)
Existe alguma outra forma?
vê se ajuda dessa forma.
no seu campo:
$F{TOTAL}.doubleValue() > new Double(0.0).doubleValue() ? String.valueOf($F{TOTAL.doubleValue()}) : ""
dica:
no “Print when”, não esqueça de converter o “boolean” para “java.lang.Boolean”.
new java.lang.Boolean($F{TOTAL}.doubleValue() > 0d )
abrxs