Calcular valor total

Bom dia , no meu formulário MESTRE/DETALHE eu criei um campo Total de Produtos que seria para somar o valor de todos os produtos do meu detalhe , eu tentei cria um método php que peguei de exemplo aqui no fórum :

sc_lookup(ds,"SELECT SUM(TOTAL) FROM VENDA_PRODUTO WHERE CODIGO = {CODIGO}"); if (empty({ds}[0][0])) { $vlc1 = 0.0; } else { $vlc1 = {ds}[0][0]; } sc_exec_sql('UPDATE CLIENTE SET total_prod = $vlc1 WHERE CODIGO = {CODIGO}'); sc_master_value('total_prod' , $vlc1);

e coloquei nos eventos : onAfterUpdate, onAfterDelete, onAfterInsert .

Sou leigo ainda no scriptcase, alguém poderia me dizer aonde estou errando ?

qual erro?

o total não esta sendo gravado na tabela CLIENTE?

o total não esta aparecendo no formulário mestre?

Colocou em modo debug para analisar as querys?

Tenta assim:
sc_lookup(ds,“SELECT SUM(TOTAL) FROM VENDA_PRODUTO WHERE CODIGO = ‘{CODIGO}’”);
if (!isset({ds[0][0]})) {
$vlc1 = 0.0;
} else {
$vlc1 = {ds[0][0]};
}
sc_exec_sql(“UPDATE CLIENTE SET total_prod = $vlc1 WHERE CODIGO = ‘{CODIGO}’”);
sc_master_value(‘total_prod’ , $vlc1);

1 Curtida

o total não esta aparecendo o formulário mestre

mesmo assim não deu

Goes,

1 - O campo CODIGO é number ou varchar?
2 - O campo de totalização é mesmo o {total_prod}?
3 - Veja se o UPDATE de fato atualiza a tabela

1 Curtida

Você já tentou esse SELECT e UPDATE direto no banco pra ver se não dá algum erro?

O campo CODIGO e Number , o de totalização e {total_prod}

E o UPDATE? Funciona direto na tabela?

Sim funciona , uma duvida eu devo fazer esse método php no formulário do detalhe ou no formulário mestre ?

formulário detalhe.

Bom galera depois de bater a cabeça com isso eu conseguir resolve mas me veio outro problema quando eu tento somar dois números formatados não me volta o valor correto

[code]$vlc1 = 2.378,06
sc_format_num($vlc1, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);

$vlc2 = 220,00
sc_format_num($vlc2, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);

{TOTAL} = $vlc1 + $vlc1 ;[/code]

se o valor de algum dos 2 passa de 1.000 ele não soma , mas se o valor e menor q 1.000 ele soma corretamente o problema seria na minha formatação ?

Faça a soma antes da formatação:

$vlc1 = 2.378,06
$vlc2 = 220,00
{TOTAL} = $vlc1 + $vlc1 ;

sc_format_num($vlc1, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);
sc_format_num($vlc2, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);