Formata Edit´s
Boa noite, galera to com um probleminha...espero que alguem possa me ajudar.....é o seguinte, eu tenho uma tela de vendas....frente de balcão, pra formatar os campos valor unitario, falor total de produtos e valor total da venda eu uso uma função, eis a danada
function TForm_Pdv.MaskString(Valor: String): String;
begin
Result := FormatMaskText(´!aaaaaaaaaaa;0; ´,(FormatFloat(´#,0.00´,StrToFloat(valor))));
end;
quando faço vendas até 2 digitos tipo 100,00 ela funciona que é uma beleza, vai tudo certo, mas quando passo para 1.000,00 ai da erro, o erro que da é na hora de receber o conteudo do tedit ja formatado, na hora que vai incerir no banco ele da erro,
DataModule_PDV.CDS_ItenVendavalor_total.Value:=StrToFloat(Edit_Vltotpr.Text);
é nessa hora ai que da erro, descrição do erro
´ 1.215,00´ is not a valid floating point value.
esse é o erro, me parece que é porque deve ter um espaço ali entre ´ e o 1, mas oque fazer na função de formatar o edit para que ele não gere esse espaço ou será que não é na função o problema???
aguardo uma dica
Anderson
function TForm_Pdv.MaskString(Valor: String): String;
begin
Result := FormatMaskText(´!aaaaaaaaaaa;0; ´,(FormatFloat(´#,0.00´,StrToFloat(valor))));
end;
quando faço vendas até 2 digitos tipo 100,00 ela funciona que é uma beleza, vai tudo certo, mas quando passo para 1.000,00 ai da erro, o erro que da é na hora de receber o conteudo do tedit ja formatado, na hora que vai incerir no banco ele da erro,
DataModule_PDV.CDS_ItenVendavalor_total.Value:=StrToFloat(Edit_Vltotpr.Text);
é nessa hora ai que da erro, descrição do erro
´ 1.215,00´ is not a valid floating point value.
esse é o erro, me parece que é porque deve ter um espaço ali entre ´ e o 1, mas oque fazer na função de formatar o edit para que ele não gere esse espaço ou será que não é na função o problema???
aguardo uma dica
Anderson
Andersonpgsql
Curtidas 0
Respostas
Cd.wagner.sena
25/04/2007
ve so, pelo q eu vi o campo na tabela é float, o espaço pode realemente estar trplhando portnto faça o seguinte teste:
[color=blue:231d26ddba]DataModule_PDV.CDS_ItenVendavalor_total.Value:=StrToFloat(Trim(Edit_Vltotpr.Text)); [/color:231d26ddba]
* esse Trim tira os espaços em branco do texto
se nao for isso tenta usar essa função
[color=blue:231d26ddba]
function TForm_Pdv.MaskString(Valor: String): String;
begin
Result := FormatCurr(´#,0.00´,StrToCurr(Trim(valor)));
end; [/color:231d26ddba]
[color=blue:231d26ddba]DataModule_PDV.CDS_ItenVendavalor_total.Value:=StrToFloat(Trim(Edit_Vltotpr.Text)); [/color:231d26ddba]
* esse Trim tira os espaços em branco do texto
se nao for isso tenta usar essa função
[color=blue:231d26ddba]
function TForm_Pdv.MaskString(Valor: String): String;
begin
Result := FormatCurr(´#,0.00´,StrToCurr(Trim(valor)));
end; [/color:231d26ddba]
GOSTEI 0
Andersonpgsql
25/04/2007
bom dia....valeu muito pela dica e pela boa vontade em ajudar, mas acho que o problema não é esse, eu fiz as respectvas mudanças como vc mensionou, mas continua dando erro....será que é alguma incompatbilidade em o ponto e a virgula??? oque será que ta acontecendo???
GOSTEI 0
Leufmt
25/04/2007
Tente isto:
Result := Format(´¬m´,[StrToCurr(Trim(valor))]);
ou
Result := Format(´¬x´,[StrToCurr(Trim(valor))]);
ou
Result := Format(´¬f´,[StrToCurr(Trim(valor))]);
Result := Format(´¬m´,[StrToCurr(Trim(valor))]);
ou
Result := Format(´¬x´,[StrToCurr(Trim(valor))]);
ou
Result := Format(´¬f´,[StrToCurr(Trim(valor))]);
GOSTEI 0
Josafat
25/04/2007
A variável decimalseparator deve estar como ´.´ e como o Edit_Vltotpr.Text está retornando ´1.215,00´ não é um valor valido pois tem uma vírgula
O que vc pode fazer é tirar o ponto e trocar o valor desta variável para vírgula
Espero ter ajudado :D
O que vc pode fazer é tirar o ponto e trocar o valor desta variável para vírgula
Espero ter ajudado :D
GOSTEI 0
Andersonpgsql
25/04/2007
leufmt valeu pela dica...a ultima opção de certo
Result := Format(´¬f´,[StrToCurr(Trim(valor))]);
agora ta redondo....
obs: vc é de mato grosso?? eu sou de Cotriguaçu
qualquer coisa me add (andersonplpgsql@hotmail.com)
ao Josafat
valeu amigão pela força, o problema era esse mesmo...e com a função do amigo leufmt o problema sanou, valeu pela força.....
abraços a todos e obrigado
Anderson
Result := Format(´¬f´,[StrToCurr(Trim(valor))]);
agora ta redondo....
obs: vc é de mato grosso?? eu sou de Cotriguaçu
qualquer coisa me add (andersonplpgsql@hotmail.com)
ao Josafat
valeu amigão pela força, o problema era esse mesmo...e com a função do amigo leufmt o problema sanou, valeu pela força.....
abraços a todos e obrigado
Anderson
GOSTEI 0