[RESOLVIDO] - Calculo em uma aplicação formulário (grid editável)

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á!

http://www.scriptcase.com.br/exemplos-scriptcase/tutoriais/form/form38.php

Espero que te ajude.

Vou efetuar testes;

Obrigado!

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:

[code]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);[/code]

Show, Marlon. Que bom que deu certo!

Excelente Marlon, estou passando por exatamente esta situação.

No meu caso gostaria de atualizar no onload o mestre porque estou utilizando paginas.

Vou tentar aqui e retorno.