caracteres

10/05/2003

1

ola galera blz
Tenho uM DBEdit ligado a um campo CODIGOBARRA relativo ao campo codigo de barra do produto ... o problemas é o seguinte ... qdo eu digitar o codigo de barra e der um enter se ele for no formato 1234 ele confirma com o campo QTD igual a 1, e se for 2*1234 ele confirma com o campo QTD igual a 2 e remove o 2* salvando o codigo de barra apenas, ou seja 1234 ... ta foda cara
Não estou conseguindo ... sei q devo ao apertar a tecla <enter> verificar se existe o caracter *, se sim pego o q tiver antes e jogo no campo QTD, e o depois no campo CODBARRA ... mas ta fods fazer isso eheh
alguem pode me judar


Responder

Posts

10/05/2003

4_olho

Meio complicado sua dúvida ...

Se o campo é DBEdit, ele representa um campo de uma tabela, isto é, o que está (ou vai escrito nele) é gravado na tabela. No seu caso, o tal DBEdit está relacionado a um Field chamado CODBARRA.

Pelo que entendi, você usa esta entrada para colocar DUAS informações diferentes - quantidade e o produto e ainda de um modo não homogêneo, pois pelo que vejo, se colocar só o código, significa que é um só produto. Quando quer colocar dois ou mais, você digita 2* (ou 3*, ou 4*) mais o código do produto. Não me parece um modo muito prático.

Para resolver, basta colocar dois DBEdit, um relacionado ao campo QTD e outro relacionado ao campo CODBARRA.

Se ainda insistir no seu modo, uma possível solução é trocar seu DBEdit por um Edit comum e no evento OnExit deste componente, colocar algo parecido com :

var
posasterisco : Integer;

begin
posasterisco := Pos(´*´, Edit1.Text);
if posasterisco <> 0 then
begin
SuaTabelaQTD.Value := StrToInt(Copy(Edit1.Text, 1, posasterisco-1));
SuaTabelaCODBARRA.Value := Copy(Edit1.Text, posasterisco+1, Lenght(Edit1.Text)-posasterisco);
end
else
SuaTabelaCODBARRA.Value := Edit1.Text;
end;


CUIDADO : não testei o código acima - pode conter vários erros de sintaxe.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira