Fórum Transferir dados de um Edit para um banco de dados #414008
13/03/2012
0
No DBGrid tem os produtos e uma Columns ESTOQUE_ATUAL, do lado tem um checkbox que quando vc ativa aparece um Edit, queria saber se tem como fazer com que o que foi escrito no Edit altere o que está no ESTOQUE_ATUAL do field selecionado. Abraços.
Eduardo Hoffmann
Curtir tópico
+ 0Posts
13/03/2012
Vinícius Belisário
Comando SQL:
UPDATE TABELA SET ESTOQUE_ATUAL = :PAR_ESTOQUE
Query1.ParamByName(PAR_ESTOQUE).AsInteger := StrToInt(Edit1.Text);
mais ou menos assim...
Gostei + 0
13/03/2012
Vinícius Belisário
não sie formatar no DevMedia
Gostei + 0
13/03/2012
Eduardo Hoffmann
Seguinte, nessa DBGrid quando o Nº ali em ESTOQUE_ATUAL ficar menor que 10, o numero fica em vermelho, eu queria que desse para uma pessoa que não sabe mecher escolher qual vai ser o valor para que o numero ficasse em vermelho.
EX: Atualmente se eu modifico ali, boto o total de 8 no ESTOQUE_ATUAL o numero ficaria em vermelho.
Ai queria fazer com que o Edit1 mudasse o seguinte código para que em vez de ser padronizado a quantidade minima 10, ela possa escolher:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (Column.Field.FieldName = ESTOQUE_ATUAL) then
begin
if IBTable1.FieldByName (ESTOQUE_ATUAL).Value < 10 then
begin
DBGrid1.Canvas.Font.Color:= clRed;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
else
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end;Gostei + 0
13/03/2012
Vinícius Belisário
Gostei + 0
13/03/2012
Eduardo Hoffmann
Eu ainda não consegui fazer um código para que o que está no Edit1 seja transferido para uma Field do DBgrid.
EX: Digito la no Edit1 20, queria que desse para escolher tipo o Mouse Genius para que quando o ESTOQUE_ATUAL chegasse a 20 ficasse em vermelho, entedeu +/-?
Gostei + 0
13/03/2012
Glauber Lima
Pelo o que estou vendo vc tem que fechar e abrir o componente de acesso para o DBgrid tenha uma visão atual do Banco de dados.
Gostei + 0
14/03/2012
Eduardo Hoffmann
[b]procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (Column.Field.FieldName = ESTOQUE_ATUAL) then
begin
if IBTable1.FieldByName (ESTOQUE_ATUAL).Value < 10 then
begin
DBGrid1.Canvas.Font.Color:= clRed;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
else
begin
DBGrid1.Canvas.Font.Color:= clBlack;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end;[/b]
Queria que o edit alteresse o código value do código if IBTable1.FieldByName (ESTOQUE_ATUAL).Value < [color=red]10[/color] then
Gostei + 0
14/03/2012
Bruno Leandro
if IBTable1.FieldByName (ESTOQUE_ATUAL).Value < 10 then
por
if IBTable1.FieldByName (ESTOQUE_ATUAL).Value < strtoint(edit1.text) then
e no evento onchange do edit1 coloque DBGrid1.refresh
Gostei + 0
14/03/2012
Eduardo Hoffmann
if IBTable1.FieldByName (ESTOQUE_ATUAL).Value < strtoint(edit1.text) then
ai eu botei
if IBTable1.FieldByName (ESTOQUE_ATUAL).Value < strtoint(edit1.text) then
O programa roda, só que da debug e não da para mecher
Gostei + 0
14/03/2012
Bruno Leandro
Gostei + 0
14/03/2012
Eduardo Hoffmann
StrToIntDef(edit1.text,0)
Gostei + 0
14/03/2012
Vinícius Belisário
if IBTable1.FieldByName (ESTOQUE_ATUAL).Value < strtoint(edit1.text) then
por assim:
if IBTable1.FieldByName (ESTOQUE_ATUAL).Value < StrToIntDef(edit1.text,0) then
Gostei + 0
14/03/2012
Eduardo Hoffmann
Gostei + 0
14/03/2012
Eduardo Hoffmann
Gostei + 0
14/03/2012
Bruno Leandro
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)