Autor Tópico: [RESOLVIDO] - Calculo em uma aplicação formulário (grid editável)  (Lida 245 vezes)

HGL

  • Intermediário
  • ***
  • Mensagens: 165
  • Certifique-se de que você pratica o que prega.
    • HGL Tecnologia
Olá pessoal!

Tenho um mestre-detalhe simples onde preciso calcular os totais de cada linha (qtda * vlr_unit)

Em que evento coloco para totalizar a cada inclusão/alteração?

{Total} = ({qtda} * {vlr_unit})

E como faria também para calcular o total?

Obrigado desde já!
« Última modificação: Junho 08, 2016, 09:26:35 am por Ronyan Alves »

Kleyber

  • Expert
  • *****
  • Mensagens: 2237
    • Email
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

HGL

  • Intermediário
  • ***
  • Mensagens: 165
  • Certifique-se de que você pratica o que prega.
    • HGL Tecnologia
Re:Calculo em uma aplicação formulário (grid editável)
« Responder #2 Online: Junho 07, 2016, 08:41:55 am »
Vou efetuar testes;

Obrigado!

HGL

  • Intermediário
  • ***
  • Mensagens: 165
  • Certifique-se de que você pratica o que prega.
    • HGL Tecnologia
Re:Calculo em uma aplicação formulário (grid editável)
« Responder #3 Online: Junho 07, 2016, 10:27:46 pm »
Olá Kleyber;

Deu certo o exemplo que me passaste.

Tenho uma tela de Ordem de serviço onde tem três totais: Total Serviço, Total Produtos e Total Geral.

Criei uma biblioteca interna para totalizar os totais, podendo ser usada nos três formulários.

Segue o exemplo para que precisar:

Código: [Selecionar]
function totalizaOS($EmpCod, $NumOS) {

//-----------------------------------------------------------------------------------------------------------------------
//Totaliza a grade de serviços...
//-----------------------------------------------------------------------------------------------------------------------
sc_lookup(dataset_ser,"select SUM(CusHorTot), SUM(CusHorQtda) FROM ordemservicohoras WHERE EmpCod = $EmpCod And OrdSerNum = $NumOS ");
$totalservico = 0;
$OrdSerTotHorDec   = 0;
    if(!empty({dataset_ser[0][0]})) {
       $totalservico = {dataset_ser[0][0]};
    }
if(!empty({dataset_ser[0][1]})) {
       $OrdSerTotHorDec = {dataset_ser[0][1]};
    }
sc_exec_sql("UPDATE ordemservico SET OrdSerVlrTotSer = $totalservico, OrdSerTotHorDec = $OrdSerTotHorDec WHERE EmpCod = $EmpCod And OrdSerNum = $NumOS ");

//-----------------------------------------------------------------------------------------------------------------------
//Totaliza a grade de produtos...
//-----------------------------------------------------------------------------------------------------------------------
sc_lookup(dataset_pro,"select SUM(Round(OrdSerVlrUnit * OrdSerQtda, 2)) FROM ordemservicoprodutos WHERE EmpCod = $EmpCod And OrdSerNum = $NumOS ");
$totalprodutos = 0;
    if(!empty({dataset_pro[0][0]})) {
       $totalprodutos = {dataset_pro[0][0]};
    }

$OrdSerVlrTot = round(($totalprodutos + $totalservico), 2);

sc_exec_sql("UPDATE ordemservico SET OrdSerVlrTotPro = $totalprodutos, OrdSerVlrTot = $OrdSerVlrTot WHERE EmpCod = $EmpCod And OrdSerNum = $NumOS ");

//-----------------------------------------------------------------------------------------------------------------------
//Atualiza os totais na tela...
//-----------------------------------------------------------------------------------------------------------------------
sc_format_num_region($totalservico, "2", "Y", "Y");
    sc_master_value('OrdSerVlrTotSer',$totalservico);

sc_format_num_region($OrdSerTotHorDec, "2", "Y", "N");
    sc_master_value('OrdSerTotHorDec',$OrdSerTotHorDec);

sc_format_num_region($totalprodutos, "2", "Y", "Y");
    sc_master_value('OrdSerVlrTotPro',$totalprodutos);

sc_format_num_region($OrdSerVlrTot, "2", "Y", "Y");
    sc_master_value('OrdSerVlrTot',$OrdSerVlrTot);

Kleyber

  • Expert
  • *****
  • Mensagens: 2237
    • Email
Re:[RESOLVIDO] Calculo em uma aplicação formulário (grid editável)
« Responder #4 Online: Junho 08, 2016, 07:35:23 am »
Show, Marlon. Que bom que deu certo!
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net