parar e esperar um valor

05/04/2006

Amigos, preciso da seguinte ajuda:
Tenho uma rotina em meu ecf que esta funcionando bem, mas agora surgiu a necessidade de verificar se a unidade do produto é Peso, dai tenho que habilitar um edit para o usuario digitar o peso real e continuar o processamento, abaixo um parte do codigo:

[color=red:3d7619e0b0]// este proximo if verificar o tamanho do codigo se for 13 digitos é codigo de barras
if Length(Edit1.Text) = 13 then
begin
if dm.SDS_PDVS.locate(´CODBARRAS´,FormBalcao2.edit1.text,[])= True then
begin
DM.SDS_Produto.Locate(´CODBARRAS´,Edit1.Text,[]);
FormBalcao2.Edit3.Text:=(dm.SDS_PDVS.FieldByName(´DESCRICAO´).AsString);
ABREVIADO:=(dm.SDS_Produto.FieldByName(´DESCRICAO´).AsString);
if (DM.SDS_Produto.FieldByName(´PRECO_PRAZO´).AsString = ´´) or (DM.SDS_Produto.FieldByName(´PRECO_PRAZO´).AsString = ´0,00´) Then
begin
Form_Principal.Mensagem(´Produto sem preço de venda. Favor verificar com Administração!´, mtError,[mbOk]);
exit;
end
else
Begin
val := DM.SDS_Produto.FieldByname(´PRECO_PRAZO´).AsCurrency;
FormBalcao2.Edit4.Text := FormatFloat(´R$ #,,0.00 ´,val);
end;

if (Form_principal.travaesto = ´SIM´) or (Form_principal.travaesto = ´Sim´) then
begin
if (DM.SDS_Produto.FieldByName(´QESTO´).Asinteger = 0) THEN
begin
Form_Principal.Mensagem(´Produto sem estoque para a venda!´, mtError,[mbOk]);
FormBalcao2.Edit1.Text := ´´;
FormBalcao2.Edit3.Text := ´´;
FormBalcao2.Edit4.Text := ´´;
FormBalcao2.Edit1.Clear;
FormBalcao2.Edit1.SetFocus;
exit;
end;
end;
[color=blue] //Verifica se o produto é vendido no peso[/color:3d7619e0b0]
[color=blue:3d7619e0b0] if dm.SDS_Produto.FieldByName(´UNIDADES´).AsString = ´PESO´ THEN
Begin
Panel6.Visible := true;
Panel6.Top := 376;
Panel6.Left := 0;
Curpeso.Clear;
Curpeso.SetFocus; // na saida deste edit retorno o valor para o edit de pesso e calculo o valor a pagar. Preciso saber como parar aqui para receber o valor real do peso do produto.
end;
end;[/color:3d7619e0b0]
[color=red:3d7619e0b0] FormBalcao2.Edit10.Text := dm.SDS_Produto.FieldByName(´QESTO´).AsString;
FormBalcao2.Edit11.Text := DM.SDS_Produto.fieldByName(´UNIDADES´).AsString;
Beep;
if (FormBalcao2.Edit2.text =´´) then
FormBalcao2.Edit2.text:=´1´;
if FormBalcao2.Edit2.text <>´´ then
begin
A:=StrtoFloat(DM.SDS_Produto.FieldByname(´PRECO_PRAZO´).AsString);
B:=StrtoFloat(edit2.text);
Soma:=(A*B);
Total:=Total+(soma);
Edit6.Text := FormatFloat(´R$ #,,0.00 ´, Total);
Edit7.Text := FormatFloat(´R$ #,,0.00 ´, soma);
ClientDataset1.Insert;
ClientDataset1.FieldByname(´CodBarras´).AsString:=(Edit1.Text);
ClientDataset1.FieldByname(´Codigo´).AsInteger:=(dm.SDS_Produto.FieldByName(´Codigo´).AsInteger);
ClientDataset1.FieldByname(´Quantidade´).AsInteger:=strtoint(Edit2.Text);
ClientDataset1.FieldByname(´Descricao´).AsString:=(ABREVIADO);
ClientDataset1.FieldByname(´Preco´).Ascurrency:= val;
ClientDataset1.FieldByname(´Soma´).AsFloat:=(soma);
ClientDataset1.FieldByname(´Total´).AsFloat:=(Total);
ClientDataset1.Post;
edit1.clear;

E_Desconto.Clear;
end;
end;
end[/color:3d7619e0b0]

Ja tentei While, temporizador, funcão e não consigo nada, alguem me ajude a resolver este probelma
Obrigado


Dpinho

Respostas

06/04/2006

Edilcimar

por que não coloca no cadastro do produto um campo para informar se o mesmo é vendido por peso ou por unidade, aí quando chamar o código de barra do mesmo a informação já vem junto e vc habilita o edit antes de continuar o processamento?


Responder Citar

06/04/2006

Dpinho

por que não coloca no cadastro do produto um campo para informar se o mesmo é vendido por peso ou por unidade, aí quando chamar o código de barra do mesmo a informação já vem junto e vc habilita o edit antes de continuar o processamento?


Obrigado pela resposta, ja existe este campo como pode ver acima
dm.sds_produtos.fieldByName(´Unidades1´).AsString
Meu problema é que mesmo fazendo a checagem se a unidade é peso ele não para no Curpeso.text para receber o valor do peso e depois continuar o processamento, resolvir este problema temporariamente utilizando o inputbox porem preferia fazer com um currency edit, porque poderia trabalhar a janela e testa se o valor digitado é valido
tipo assim não deixa que o usuario digite sem a virgula por exemplo


Responder Citar

06/04/2006

Edilcimar

Dê um select com o código de barras apenas, se for peso então jogue para o edit e depois faça o select final, caso não seja peso jogue para o select final, aí ele para


Responder Citar