Fórum Formata Edit´s #340850

25/04/2007

0

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


Andersonpgsql

Andersonpgsql

Responder

Posts

25/04/2007

Cd.wagner.sena

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]


Responder

Gostei + 0

25/04/2007

Andersonpgsql

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???


Responder

Gostei + 0

25/04/2007

Leufmt

Tente isto:

Result := Format(´¬m´,[StrToCurr(Trim(valor))]);
ou
Result := Format(´¬x´,[StrToCurr(Trim(valor))]);
ou
Result := Format(´¬f´,[StrToCurr(Trim(valor))]);


Responder

Gostei + 0

25/04/2007

Josafat

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


Responder

Gostei + 0

25/04/2007

Andersonpgsql

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar