Fórum Problemas Na DBGrid #339142

22/03/2007

0

Olá amigos, sou novo no fórum. Estou com um problema.

O Aplicativo usado aqui na empresa onde trabalho possui dados numa DBGrid.

Os usuários desse aplicativo alimentam (nessa dbgrid) um campo de valor. Esse valor por sua vez é copiado (Crtl + C) de outro lugar e nesse lugar o valor está formatado da seguinte forma: ´2.555,60´.

O aplicativo precisa tratar o valor ´colado´ e passar no formato ´2555,60´ para que o Delphi aceite.

O problema é que após copiar e colar na aplicação nesse formato (´2.555,60´), quando tento passar pra linha de baixo (por consequencia gravar a alteração) o sistema me mostra a mensagem: ´is not a valid floating point value for field´.

Tentei usar o StringReplace no evento BEFORE POST da seguinte forma:

svalor := StringReplace(DBGrid4.Columns[6].Field.AsString,´.´,´´, [rfReplaceAll]);
Q_Parcelas_FinanciadoresVAL_PARCELA_FINANCIADOR.AsCurrency := StrToCurr(svalor);

Mas, o sistema apresenta o mesmo erro. Tento inserir um Break Point e o sistema não chega nem a passar pelo evento BEFORE POST. Tentei colocar isso em outros eventos mas, também não funcionou.

Alguém sabe uma forma de resolver isso ???

Ah, estou usando Delphi 7 com Oracle.

Abraços

Richard Wagner


Richardwagner

Richardwagner

Responder

Posts

22/03/2007

Marco Salles

No evento onsettext do field Escreva a sua idéia

procedure TForm1.SeuDataSETSeuCampoSetText(Sender: TField; const Text: String); begin sender.AsString:=StringReplace(text,´.´,´´, [rfReplaceAll]); end;



Responder

Gostei + 0

22/03/2007

Richardwagner

Coloquei

procedure TF_AjusteParcelas.Q_Parcelas_FinanciadoresVAL_PARCELA_FINANCIADORSetText(Sender: TField; const Text: String);
begin
Sender.AsString := StringReplace(DBGrid4.Columns[6].Field.AsString,´.´,´´, [rfReplaceAll]);
end;

Ele está passando como valor (DBGrid4.Columns[6].Field.AsString) o valor antes de ´colar´ o novo valor.

Como se ele não tivesse reconhecendo o valor que eu colo.


Responder

Gostei + 0

22/03/2007

Marco Salles

Coloquei procedure TF_AjusteParcelas.Q_Parcelas_FinanciadoresVAL_PARCELA_FINANCIADORSetText(Sender: TField; const Text: String); begin Sender.AsString := StringReplace(DBGrid4.Columns[6].Field.AsString,´.´,´´, [rfReplaceAll]); end; Ele está passando como valor (DBGrid4.Columns[6].Field.AsString) o valor antes de ´colar´ o novo valor. Como se ele não tivesse reconhecendo o valor que eu colo.


procedure TF_AjusteParcelas.Q_Parcelas_FinanciadoresVAL_PARCELA_FINANCIADORSetText(Sender: TField; const Text: String); begin Sender.AsString := StringReplace(text,´.´,´´, [rfReplaceAll]); end;


[b:6f8ac5cea7]so trocar o DBGrid4.Columns[6].Field.AsString pelo Parametro Text[/b:6f8ac5cea7]


Responder

Gostei + 0

22/03/2007

Richardwagner

Mas, aí é que tá...

O parametro text precisa receber um valor. E o valor que eu passo pra ele é exatamente esse ´DBGrid4.Columns[6].Field.AsString´ né ???


Responder

Gostei + 0

22/03/2007

Marco Salles

Mas, aí é que tá... O parametro text precisa receber um valor. E o valor que eu passo pra ele é exatamente esse ´DBGrid4.Columns[6].Field.AsString´ né ???


[u:fe94e7cf73][b:fe94e7cf73]não... [/b:fe94e7cf73][/u:fe94e7cf73]o parametro text é o que esta no seu DBGrid4.Columns[6].Field.AsString , momento antes dele ser gravado na base de dados..

Mas porque que não esta dando certo com ?

Sender.AsString := StringReplace(text,´.´,´´, [rfReplaceAll]);



Responder

Gostei + 0

22/03/2007

Richardwagner

Cara, deu certo.

Eu não tinha atentado pro Parametro Text.

Muitissimo Obrigado.

Abraços

Richard Wagner


Responder

Gostei + 0

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

Aceitar