Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Calculo de valor em gráfico

Bom dia comunidade.

Estou com a seguinte questão que já quebrei a cabeça aqui e agora estou com dois problemas, um é a dor de cabeça e a outra não ter conseguido resolver e por isso estou aqui.

O campo Total da Nota Fiscal, do gráfico do tipo tabela simples intitulado Emitente, é composto pela seguinte expressão (Valor no retângulo verde):

(Sum(VPROD_PROD) + Sum(VFRETE_PROD) + Sum(VIPI_TOT) + Sum(VICMSST_ICMS_DET)+ Sum(VSEG_TOT) + Sum(VOUTRO_TOT)) - VDESC_TOT

Os demais campos disponíveis neste objeto fazem parte da dimensão, conforme imagem abaixo.

MCE.png

O objeto gráfico do tipo pizza tem como dimensão a UF do Emitente e a expressão é quase a mesma, somente com uma diferença, que está em negrito:

((Sum(VPROD_PROD) + Sum(VFRETE_PROD) + Sum(VIPI_TOT) + Sum(VICMSST_ICMS_DET)+ Sum(VSEG_TOT) + Sum(VOUTRO_TOT)) - SUM(VDESC_TOT))

Na tabela simples, o valor do retângulo verde já foi homologado pelo cliente, entretanto se eu retirar o SUM() do valor do desconto (VDESC_TOT), o gráfico não é apresentado em sua totalidade, mas apenas quando uma chave de acesso da NFe é selecionada.

A pergunta é como resolver para que o cálculo do gráfico fique o mesmo da tabela?

Labels (1)
10 Replies
cesaraccardi
Specialist
Specialist

Ola Savio,

Conforme o Rogerio comentou, o problema parece estar no valor desconto estar repetido para cada produto. Isso explicaria por que a formula sem agregacao funciona na tabela que possui os detalhes da nota e nao no grafico de pizza (nivel de granularidade menor e portanto multiplos valores para cada valor da dimensao).

Voce pode fazer o seguinte, agregar o valor de desconto para cada nota fiscal:

sum(aggr(avg(VDESC_TOT), COD_INFNFE))

Essa formula fara com que o desconto seja calculado ignorando as repeticoes para cada NF, como o aggr() precisa de uma funcao de agregacao usamos avg() ja que a media de um valor repetido e o proprio valor.

Para os demais valores a nivel de produto voce pode usar o sum() mesmo, a formula final ficaria assim:

(Sum(VPROD_PROD) + Sum(VFRETE_PROD) + Sum(VIPI_TOT) + Sum(VICMSST_ICMS_DET)+ Sum(VSEG_TOT) + Sum(VOUTRO_TOT)) - sum(aggr(avg(VDESC_TOT), COD_INFNFE))


Essa formula deve continuar mostrando o mesmo valor na tabela e corrigir o valor do grafico.


Abracos,


Cesar