Atualização de Valores

Galera do SC
Tenho uma aplicação com um form pai “Devedores” e um mestre detalhe “Mensalidades”
Vou tentar ser bem objetivo. No form mensalidades no momento em que faço a inclusão de um débito ele atualiza o form pai “Devedores” no campo dv_valor, conforme o status
if ({ms_status} == “EM ABERTO”)
sc_lookup(dataset,“SELECT SUM(ms_valor) FROM mesalidades
WHERE (dv_id = ‘{dv_id}’)”);
if (empty({dataset}[0][0])) {
$total = 0.0;
} else {
$total = {dataset}[0][0];
}
sc_exec_sql(‘UPDATE devedores SET dv_valor = $total WHERE dv_id = {dv_id}’);
sc_format_num($total, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);
sc_master_value(‘dv_valor’,$total);

Ate aqui blz, mas no momento que altero o status para “PAGO”, não consigo fazer com que o saldo devedor (dv_valor) no form “Devedores” seja atualizado dando baixa apenas no valor pago.
Se puderem me ajudar.
Att
Helder

Olá Helder,

Não entendi direito, quando você altera o status da mensalidade para “Pago” não está atualizando apenas o formulário pai? ou a tabela no banco tbm não está sendo atualizada?

Posso estar viajando aqui, mas tente colocar algo parecido com isso no evento onAfterUpdate do formulário filho:

// Lookup para retornar a soma das mensalidades do devedor em aberto
// obs: alterar condição ms_status = 'EM ABERTO' de acordo com os campos e valores no seu banco de dados

sc_lookup(dataset2,"SELECT SUM(ms_valor) FROM mesalidades WHERE (dv_id = '{dv_id}') AND (ms_status = 'EM ABERTO')");
    if (empty({dataset2}))         // caso não tenha mensalidades em aberto, total = 0
        {
           $total = 0;
        } 
    else                          // caso tenha mensalidades em aberto, total = soma das mensalidades
        {   
          $total = {dataset2}[0][0];
        }
sc_format_num($total, '.', ',',  2,  'S',  '1',  '');  // se vc colocar o tipo do campo no formulário pai como 'moeda', acho que não precisará formatar o valor
sc_master_value('dv_valor',$total);

Essa função deverá calcular (após o update do formulário filho) a soma atual das mensalidades em aberto e enviar pro formulário pai…
Se eu entendi direito a sua dúvida, imagino que isso vai funcionar hehe se não der certo, coloca mais detalhes pra gte dar uma olhada!

Att.
Robson

Caro colega Robson,
Obrigado pelo interesse em ajudar, vou tentar e lhe retorno…
Att
Helder