none
Cálculo em Relatórios RRS feed

  • Pergunta

  • Bom dia pessoal.

    Estou desenvolvendo um relatório e, preciso realizar um cálculo entre alguns campos no momento em que for gerado o relatório.
    A linha do relatório traz informações referentes à ordem de compra, e, eu preciso calcular dados de outra tabela simultaneamente, como se fosse uma planilha de excel, que utilizamos uma coluna anterior para executar uma fórmula.
    Seria algo +/- assim:

    Item - Quantidade - Valor - Estoque - EMC - PPD - XXX

    Onde, as colunas EMD, PPD, XXX, etc, são calculados dependendo dos valores  de estoque e etc.

    Por exemplo: EMC = Valor * Estoque
    PPD = EMC - Quantidade
    XXX = EMC/PPD

    Algo assim,  que fosse executado por linha....

    É possível ?

    Obrigado !!

    quarta-feira, 14 de agosto de 2013 12:25

Todas as Respostas

  • matfurrier

    Porque você já não envia para o relatorio um campo com esses valores?

    acredito que seria mais pratico para você.


    Julio Arruda __________________________________ Se foi util, marque como resposta

    quarta-feira, 14 de agosto de 2013 13:06
  • matfurrier

    Porque você já não envia para o relatorio um campo com esses valores?

    acredito que seria mais pratico para você.


    Julio Arruda __________________________________ Se foi util, marque como resposta

    Bom dia Julio.

    Então, na verdade, eu gostaria de fazer assim, porém, alguns dados só serão gerados no momento em que o relatório for executado.
    Alguns valores eu tenho fixo, mas, por exemplo, como coloquei o PPD, EMD, dependem do valor gerado no momento o relatório...ele pode variar, por isso gostaria de executar instantaneamente...

    Será que é possível ?

    quarta-feira, 14 de agosto de 2013 13:10
  • matfurrier

    Acredito que você possa calcular esses campos no momento que gera eles para exibir no relatorio.

    Que relatorio você está usando? Crystal Reports, Reportviewer, DxExtraReports,?


    Julio Arruda __________________________________ Se foi util, marque como resposta

    • Sugerido como Resposta Julio ArrudaMVP quarta-feira, 14 de agosto de 2013 13:19
    quarta-feira, 14 de agosto de 2013 13:19
  • Julio, aqui utilizamos o DAX 2009, e é o Reportviewer padrão do AX mesmo.

    O problema que tenho é: como calcular estes campos no momento de gerar o relatório.

    Não tenho ideia de como fazer =/

    quarta-feira, 14 de agosto de 2013 13:22
  • matfurrier

    Você vai ter que criar uma expressão:

    estou te mandando um exemplo de uma, mas quando vc clica em expression, abre um wizard que te ajuda,

    e de uma olhada no link abaixo, acredito que te ajude tambem,

    =Sum(Fields!NR_VALOR_CHEQUE.Value, "DataSet1")+Sum(Fields!NR_VALOR_PAGO.Value, "DataSet1")

    http://social.msdn.microsoft.com/Forums/vstudio/pt-BR/0d90f9c1-d2d6-43a9-b40c-5e69fe7c942f/reportviewer-subtrair-totais-dos-agrupamentos


    Julio Arruda __________________________________ Se foi util, marque como resposta

    • Sugerido como Resposta Julio ArrudaMVP quarta-feira, 14 de agosto de 2013 13:36
    quarta-feira, 14 de agosto de 2013 13:36
  • matfurrier

    Você vai ter que criar uma expressão:

    estou te mandando um exemplo de uma, mas quando vc clica em expression, abre um wizard que te ajuda,

    e de uma olhada no link abaixo, acredito que te ajude tambem,

    =Sum(Fields!NR_VALOR_CHEQUE.Value, "DataSet1")+Sum(Fields!NR_VALOR_PAGO.Value, "DataSet1")

    http://social.msdn.microsoft.com/Forums/vstudio/pt-BR/0d90f9c1-d2d6-43a9-b40c-5e69fe7c942f/reportviewer-subtrair-totais-dos-agrupamentos


    Julio Arruda __________________________________ Se foi util, marque como resposta

    Julio,

    testarei e reporto aqui.

    Muito obrigado por enquanto.

    quarta-feira, 14 de agosto de 2013 13:39
  • Julio, fique só com mais uma dúvida....

    Talvez eu não tenha respondido corretamente a nossa ferramenta de geração de relatórios, pois não sei do wizard para expressões.

    Abaixo, o local onde crio os reports (diretamente na AOT / Reports)

    quarta-feira, 14 de agosto de 2013 13:46
  • matfurrier,

    

    de uma olhada se você encontra isso em seu relatorio....


    Julio Arruda __________________________________ Se foi util, marque como resposta

    quarta-feira, 14 de agosto de 2013 13:52
  • Não tem Julio..

    Aqui não foi colocado Reporting Services =/

    quarta-feira, 14 de agosto de 2013 13:54
  • Mateus,

    Utilize métodos "display".

    crie um método no relatório chamado:

    public display real EMC() //Pode ser qualquer outro tipo
    {
        ;
        return meuBuffer.CampoValor / estoque;
    }

    Vale lembrar que este campo estoque, se não existe na sua tabela principal, você terá que obtê-lo de alguma forma, já que não sei o que você quer dizer com "estoque". 

    A mesma coisa vale para os outros casos, crie um método display retornando o tipo desejado (neste caso retorna "real"), e arraste-o para o Body ou Section que quiser.

    Existem outra formas também de se fazer isto.

    Você está utilizando a query padrão do Ax ou mexeu no método Fetch?

    Abraço.


    Gustavo Bagno E. da Silva

    quarta-feira, 14 de agosto de 2013 15:07
  • Olá Gustavo.

    Esta é a padrão do AX mesmo.

    Este campo estoque é de uma tabela minha mesmo e foi só um exemplo.

    Vou testar desta maneira também e retorno aqui.

    Obrigado.

    quarta-feira, 14 de agosto de 2013 16:02