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]