Bom dia,
Estou migrando um sistema escrito originalmente na versão 5 do Scriptcase para a novo versão 9.6. Estou rescrevendo o sistema na versão 9.6 tomando como parâmetro o sistema feito na versão 5.
Em uma dada aplicação de consulta eu necessito fazer um cálculo de porcentagem simples. A SQL dessa aplicação é:
SELECT EM.NM_EMPRESA AS NM_EMPRESA,
EX.DT_LANCAMENTO AS DT_LANCAMENTO,
sum(nvl(EX.QTDE_EXPORTADA*EX.VLR_UNITARIO,0)) AS TOTAL
FROM TB_MOVIMENTO M INNER JOIN TB_MOV_PRODUTO MOV ON M.NUM_FORM_PADRAO = MOV.NUM_FORM_PADRAO AND M.NUM_NCM = MOV.NUM_NCM
INNER JOIN TB_LOCALIDADE PA ON M.ID_LOCALIDADE = PA.ID_LOCALIDADE
INNER JOIN TB_EMPRESA EM ON M.CNPJ_EMPRESA = EM.CNPJ_EMPRESA
INNER JOIN TB_PRODUTO PR ON MOV.ID_PRODUTO = PR.ID_PRODUTO
LEFT JOIN TB_EXPORTACAO EX ON MOV.NUM_FORM_PADRAO = EX.NUM_FORM_PADRAO
WHERE (M.NUM_FORM_PADRAO) = MOV.NUM_FORM_PADRAO
GROUP BY EM.NM_EMPRESA,EX.DT_LANCAMENTO
ORDER BY NM_EMPRESA
Eu utilizo o recurso Quebra para poder formatar apresentação dos resultados da consulta usando o campo NM_EMPRESA como parâmetro.
Para o cálculo da porcentagem eu utilizei o recurso de Totalização que a aplicação de consulta disponibiliza para fazer a soma parcial do campo TOTAL agrupado em função da quebra de NM_EMPRESA da consulta.
Eu consigo criar um campo que deveria conter a somatória de TOTAL que recebeu o nome TOTAL_sum. No cálculo da porcentagem TOTAL_sum é usado como o divisor da fórmula.
Eu utilizo o evento onRecord para fazer o cálculo. O cálculo é:
{PARTICIP} = (({TOTAL}/{TOTAL_sum})*100);
Ob.: o campo {PARTICIP} é criado manualmente.
Entretanto, quando executoi a aplicação ocorre o erro “Division by zero”.
Verifiquei o campo da somatória e ele está zerado. Ou seja, a somatória não está sendo feita.
O que posso verificar na configuração da aplicação para resolver esse problema.