Array
(
)

Campos iguais e exibir menssagem..

Gigatel
   - 08 nov 2005

Parece coisa simples mas tenho 2 campos:
1) BD_ESTOQUEGS_EST_MINIMO.value ....onde específico uma quantidade mínima para o sistema me avisar.
2) BD_ESTOQUEGS_EST_QNT.Value .....este fica a quantidade atual no estoque

tenho um form onde existe um edit (Edit2) e um botão (Concluir ) onde coloco a quantidade e no botão para concluir...presciso de 2 coisas ...

uma mensagem avisando que a quantidade já está no mínimo, e esta mensagem teria que ter 2 Button ( sim e não ou yes e No ), prescionado o não é cancelado a operação e se prescionado o sim ele subtraisse o valor do BD_ESTOQUEGS_EST_QNT.Value pelo o edit2...

aí galera isto tá parecendo trabalho de escola...más estou quebrando cabeça com outra parte da função e tava prescisando dá uma adiantada nesta...se alguém puder dá uma força aí...valew...


Bruno Belchior
   - 08 nov 2005

#Código

if BD_ESTOQUEGS_EST_QNT.AsInteger <= BD_ESTOQUEGS_EST_MINIMO.AsInteger then
begin
if Application.MessageBox(´Texto´,´Título´, MB_YESNO) = mrYes then
begin
BD_ESTOQUEGS_EST_QNT.AsInteger := BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text);
end
else
// Foi Pressionado não...
end
Não se esqueça de levar em consideração a quantidade vendida ser maior que o estoque atual...


Marcio.theis
   - 08 nov 2005

Uma forma simples de fazer acho que seria desta forma:
#Código


var
continuar: boolean;
begin
continuar:=False;
if (BD_ESTOQUEGS_EST_QNT.Value) <= (BD_ESTOQUEGS_EST_MINIMO.value) then
begin
if Application.MessageBox(PChar(´A quantidade é inferior ou igual ao mínimo do estoque !´ + #13 + ´Deseja continuar ?´),´Mínimo em Estoque´,MB_YESNO or MB_APPLMODAL or MB_DEFBUTTON2 or MB_ICONQUESTION) = mrYes then
continuar:=True;
end;
if continuar then
begin
{continuação do seu código para efetuar a baixa no estoque}
end;



Gigatel
   - 08 nov 2005


Citação:
#Código

if BD_ESTOQUEGS_EST_QNT.AsInteger <= BD_ESTOQUEGS_EST_MINIMO.AsInteger then
begin
if Application.MessageBox(´Texto´,´Título´, MB_YESNO) = mrYes then
begin
BD_ESTOQUEGS_EST_QNT.AsInteger := BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text);
end
else
// Foi Pressionado não...
end
Não se esqueça de levar em consideração a quantidade vendida ser maior que o estoque atual...

Valew..más só tem um probleminha...na sua função o processo de subtração está depois do ´SIM´ na verdade seria assim ....se na hora que fosse prescionado o botão ele faria a seguinte análize...Se o valor do edit 2 fosse menor que no espessificado no estoque ele num daria mensagem nenhuma e executaria o processo de subtração normalmente a mensagem só apareceria se tivesse algo de errado com o estoque igual ou menor...aí sim apareceria uma mensagem do tipo ´Estoque no mínimo! deseja continuar ?´ aí prescionando o sim faria a subtração tambem...e prescionado o não cancelaria o processo..vlw...


Gigatel
   - 08 nov 2005

OI a eu de novo ... ambas as funções só diminuem o estoque se o os valores for menor ou igual...estou prescisando é o seguinte enquanto o valor do estoque for maior, ele continua a subtraindo, ele só vai aparecer a mensagem se o estoque for menor..e quando for prescionado o NÃO ele cancela o processo até mesmo o de subtração ...vlw...


Wilson Brito
   - 08 nov 2005

#Código

if (BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text)) <= BD_ESTOQUEGS_EST_MINIMO.AsInteger then 
begin
if Application.MessageBox(´Texto´,´Título´, MB_YESNO) = mrYes then
begin
BD_ESTOQUEGS_EST_QNT.AsInteger := BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text);
end
else
// Foi Pressionado não...
end



Gigatel
   - 08 nov 2005

Num deu certo...
Fiz Assim


#Código


if (BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text)) <= BD_ESTOQUEGS_EST_MINIMO.AsInteger then
begin
if Application.MessageBox(´A quantidade é inferior ou igual ao mínimo do estoque !´ + #13 + ´Deseja continuar ?´,´Estoque´, MB_YESNO) = mrYes then
begin
BD_ESTOQUE.Edit;
BD_ESTOQUEGS_EST_QNT.AsInteger := BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text);

end
else
BD_ESTOQUE.Edit;
BD_ESTOQUEGS_EST_QNT.AsInteger := BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text);

end
end;



Os seguintres bug´s foram detectados..

A) quando o valor é maior o mínimo e não subtrai no estoque..
B) quando presciona o ´não´ continua a diminuir...

Tá estranho/...


Marcio.theis
   - 09 nov 2005

Mas nas duas situações vc esta fazendo a mesma coisa, se precionou sim ou não ele esta diminuindo igual ....


Martins
   - 09 nov 2005

Pegando carona no seu código...

#Código



if (BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text)) <= BD_ESTOQUEGS_EST_MINIMO.AsInteger then
begin
if Application.MessageBox(´A quantidade é inferior ou igual ao mínimo do estoque !´ + #13 + ´Deseja continuar ?´,´Estoque´, MB_YESNO) = mrYes then
begin
BD_ESTOQUE.Edit;
BD_ESTOQUEGS_EST_QNT.AsInteger := BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text);

end
else

Abort;
end;





Gigatel
   - 09 nov 2005

Caro Martins a sua correção Funcionou no que diz respeito a prescionar o ´NÃO´ más ainda não funciona a subtração do estoque quando está normal a função acima está apenas detectando o estoque baixo ou estoque zero, más estoque normal não funciona...e tem outra coisa a função completa teria que ter esta implementação...( o resto do código )
#Código


var
a,b,c : real;
e:integer;
begin
if Edit2.text = ´0´ then
begin
showmessage(´A quantidade tem que ser maior que zero.´)
end
else
begin
a := strtofloat(Edit2.text);
b := strtofloat(BD_ESTOQUEGS_EST_VALOR_VENDA.Value);
c := a*b;
E:=_FORM_OS_NAV.BD_OFC_ELEGS_OOE_CODIGO.Value;
_FORM_OS_OR.BD_ORCA_ITENS.Insert;
_FORM_OS_OR.BD_ORCA_ITENSGS_OOEI_QNT.Value := Edit2.text;
_FORM_OS_OR.BD_ORCA_ITENSGS_OOEI_DESCRICAO.Value := BD_ESTOQUEGS_EST_DESCRICAO.Value;
_FORM_OS_OR.BD_ORCA_ITENSGS_OOEI_UNIT.Value := Edit4.text;
_FORM_OS_OR.BD_ORCA_ITENSGS_OOEI_VALOR_UNIT.Value := BD_ESTOQUEGS_EST_VALOR_VENDA.Value;
_FORM_OS_OR.BD_ORCA_ITENSGS_OOEI_VALOR_TOTAL.Value := floattostrf(c,ffFixed,10,2);
_FORM_OS_OR.BD_ORCA_ITENSGS_OOEI_CODACES.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CODIGO.value;
_FORM_OS_OR.BD_ORCA_ITENS.Post;
_FORM_OS_OR.BD_ORCA_ITENS.Close;
_FORM_OS_OR.BD_ORCA_ITENS.SQL.Clear;
_FORM_OS_OR.BD_ORCA_ITENS.SQL.Add(´select * from ORCAMENTO_OFIC_ELET_ITENS where GS_OOEI_CODACES=´+inttostr(E));
_FORM_OS_OR.BD_ORCA_ITENS.Open;
Close;
end;


Más está meio estranho...


Gigatel
   - 10 nov 2005

teste de postagem


Gigatel
   - 10 nov 2005

Estive analizando o código e cheguei em alguns resultados positivos más tem algo de errado...se coloco o valor 1 no Edit1 quando aparece a mensagem, e diminui do . EX...se no esto tiver 1 e colocar 1 ele avisa e subtrai 2 ?????veja o código...Declarei uma procedure em PRIVATE

#Código


private
procedure VERESTBAIXO;


Fiz o código referente a procedure..

#Código

procedure T_FORM_OS_ESTOQUE.VERESTBAIXO;
Begin
if Application.MessageBox(´A quantidade é inferior ou igual ao mínimo do estoque !´ + #13 + ´Deseja continuar ?´,´Estoque´, MB_YESNO) = mrYes then
begin
BD_ESTOQUE.Edit;
BD_ESTOQUEGS_EST_QNT.AsInteger := BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text);
end
else
Abort;
end;



aki esta onde vai ler a função...fica num boton..

#Código

if (BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text)) <= BD_ESTOQUEGS_EST_MINIMO.AsInteger then
VERESTBAIXO
else
BD_ESTOQUE.Edit;
BD_ESTOQUEGS_EST_QNT.AsInteger := BD_ESTOQUEGS_EST_QNT.AsInteger - StrToInt(Edit2.Text);
end;



Parece estra certo...más num sei o que é...


Gigatel
   - 10 nov 2005

Alguém está tendo problemas em criar novos tópicos aki no fúrum ? não estou conseguinto fazer um novo tópico...estranho/..