Valores entre faixas firebird Delphi

10/03/2019

0

Valores entre faixa Firebird Delphi 10 Seattle
estou tentando verificar um valor entre uma varias faixas e não esta dando certo
campo tipo numerico 15,2 variavel String
procedure TFLANCAR.DBEdit12Exit(Sender: TObject);
begin
TX42 := ''''70,00'''';
TX43 := ''''70,01'''';
TX44 := ''''154,00'''';
TX45 := ''''154,01'''';
TX46 := ''''308,30'''';

IF (DBEdit12.Text <= TX42) and (TX = ''''A'''') THEN
DBEDIT40.TEXT := ''''78,31'''';

IF ((DBEdit12.Text <= TX42) and (TX = ''''B'''')) THEN
DBEDIT40.TEXT := ''''104,35'''';

IF (DBEdit12.Text <= TX42) and (TX = ''''B'''') THEN
DBEDIT40.TEXT := ''''80,71'''';

IF (DBEdit12.Text >= TX43) AND (DBEdit12.Text <= TX44) AND (TX = ''''A'''') THEN
DBEDIT40.TEXT := ''''89,11'''';

IF (DBEdit12.Text >= TX43) AND (DBEdit12.Text <= TX44) AND (TX = ''''B'''') THEN
DBEDIT40.TEXT := ''''115,15'''';

IF (DBEdit12.Text >= TX43) AND (DBEdit12.Text <= TX44) AND (TX = ''''C'''') THEN
DBEDIT40.TEXT := ''''91,59'''';
Rezando que alguem ajude ja tentei tanta maneiras que nem sei mais
Nevaldo Rebés

Nevaldo Rebés

Responder

Post mais votado

11/03/2019

Olá Nevaldo, tudo bem?

Você está trabalhando com tudo em string e o delphi não está levando em consideração o valor numeral, e sim o valor da tabela de caracteres...


o certo seria:

procedure TFLANCAR.DBEdit12Exit(Sender: TObject);
var
    valor: real;
begin
TX42 := 70.00; //estas variáveis são todas do tipo real;
TX43 := 70.01;
TX44 := 154.00;
TX45 := 154.01;
TX46 := 308.30;

valor:=strToFloat((DBEdit12.Text );

IF valor<= TX42) and (TX = ''''A'''') THEN
DBEDIT40.TEXT := ''''78,31'''';

IF ((valor <= TX42) and (TX = ''''B'''')) THEN
DBEDIT40.TEXT := ''''104,35'''';

IF (valor <= TX42) and (TX = ''''B'''') THEN
DBEDIT40.TEXT := ''''80,71'''';

IF (DBEdit12.Text >= TX43) AND (DBEdit12.Text <= TX44) AND (TX = ''''A'''') THEN
DBEDIT40.TEXT := ''''89,11'''';

IF (valor >= TX43) AND (valor <= TX44) AND (TX = ''''B'''') THEN
DBEDIT40.TEXT := ''''115,15'''';

IF (valor >= TX43) AND (valor <= TX44) AND (TX = ''''C'''') THEN
DBEDIT40.TEXT := ''''91,59'''';


Espero ter ajudado. Um Forte abraço e fique com Deus.

Hélio Devmedia

Hélio Devmedia
Responder

Mais Posts

11/03/2019

Nevaldo Rebés

CARA tu é o melhor!!!!
Pra finalizar o post me ajuda
com a mascara não funciona valor acima de 1.000,00
até 999,99 uma beleza
DisplayFormat ###,###,##0.00
sem a mascara tudo certo
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar