Galera, boa tarde. Estou com uma dificuldade besta.
Preciso pegar a porcentagem dos pedidos analisando o valor total, conta simples
(TOTAL PEDIDO / TOTAL GERAL) * 100
Exemplo
TOTAL.: R$ 578.041,86
1º Pedido.: 293.933,26 = 50,85 %
2º pedido.: 151.981,52 = 26,29 %
3º pedido.: 24.646,94 = 4,26 %
e por ai vai.
Só que o Ireport traz o primeiro valor errado ao fazer o calculo acima.
linha 1 ele coloca .: 100 %
a partir da linha 2 calcula certo.
Já mexi no Evol. time mas nao deu certo.
Alguem já passou por isso e achou solução?
Será que por um infeliz acaso você não está passando o valor total como um valor de pedido? Isso resultaria em 100%.
então…
Não…
Minha variavel de Percentual é.:
($F{Faturado} / $V{TOTAL}) *100
$F{Faturado} Valor da NF.
$V{TOTAL} = TOTAL GERAL.
acho que a sua conta esta errada, acho que vc tem multiplicar por 100 o total pedido e depois dividir pelo total geral…
[code] private Double calculaPercentual(long total, long parte) {
BigDecimal item = new BigDecimal(total);
BigDecimal value = new BigDecimal(parte);
if (item.intValue() <= 0) {
value = new BigDecimal(0);
} else {
value = value.multiply(new BigDecimal(100)).setScale(2);
value = value.divide(item, 2, RoundingMode.FLOOR);
}
return value.doubleValue();
}[/code]
acho que deve ser assim
(TOTAL PEDIDO * 100) / TOTAL GERAL
carlos.hager
Já havia feito isso, continua na mesma (mesmo resultado.)…
No Sql se eu fizer esse codigo …funciona.
No Java tbm…
O problema está no ireport.
Resolvi…
criei um novo campo com o 'TextField Expression ’ assim.:
new Double( $F{Faturado}.doubleValue() / $V{Faturado_SUM_1}.doubleValue() )
Pattern.:
#,##0.00%
Evaluation Time
Auto
Onde
$V{Faturado_SUM_1} é uma variavel de soma do faturado de cada pedido.