Ao atualizar o formulário no campo decimal são incluídas duas casas decimais

Bom dia pessoal,

O problema ocorre em um formulário, ao atualizar o registro (“voltamos a editar”). Após o SC recarregar os campos na tela ele altera os campos decimais forçando uma nova formatação e incluindo “,00” ao final do valor.

Versão do SC: 4.00.0037
Campo SC Tipo: Decimal
Campo BD Mysql: Decimal(10,2)

Como corrigir o problema?

Boa tarde,

Por gentileza verifique como o Sr. definiu o separador decimal nas suas configurações de conexão.

Att,
Bernhard Bernsmann

Boa tarde,

Eu verifiquei e estava como ponto (.).

Alterei para vírgula (,) no meu ambiente de desenvolvimento e recompilei a tela. - Não Funcionou;
Alterei para vírgula (,) também no servidor onde a aplicação está publicada. - Não funcionou;

Deveria recopilar o projeto inteiro?

Mais uma informação o que acontece na prática é assim:

Quando puxo a tela o campo tem o valor de 1,99, quando clico para atualizar e ele recarrega a página com o Ajax, transforma o campo em 199,00. Ou seja converte a " , " em " . " e aí ele se perde achando que é 199,00 e não mais 1,99…

Obrigado!

Tente

double em DB

Você diz no tipo do campo? No SQL já está.

mySQL

Bom, utilizo assim:

No Mysql double

No SC Decimal

Regional Settings = yes
Digit grouping = yes
e Decimal Precision = 2

Já passou por este problema?

Já sim,

só que no meu DB tava Decimal aí mudei para double e resolveu

Então, quando mudamos para double aqui também “resolveu” quando o valor é 800,00 ele fica certinho, agora se coloco 800,20 ele fica 8002,00… Tinha este problema também?

Problema parcialmente resolvido.
No onload dos formulários utilizamos a sc_field_readonly() em alguns campos. Nos campos que possuem formatação como DECIMAL e DATE perdemos a formatação ao “Atualizar” o registro.

*Gera o problema
if …
sc_field_readonly({ValorPago}, “on”);
sc_field_readonly({ValorBruto}, “on”);
sc_field_readonly({Desconto}, “on”);
else
sc_field_readonly({ValorPago}, “off”);
sc_field_readonly({ValorBruto}, “off”);
sc_field_readonly({Desconto}, “off”);
end

*Solução - No evento onload após passar pelo readonly devemos formatar o campo
sc_format_num({ValorPago}, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);
sc_format_num({ValorBruto}, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);
sc_format_num({Desconto}, ‘.’, ‘,’, 2, ‘S’, ‘1’, ‘’);

OBS: Temos o mesmo problema com um campo DATE que não conseguimos resolver da mesma maneira.

1 Curtida