Fórum Entrada de produtos #375607
05/10/2009
0
eu queria fazer o seguite: se o que tem digitado no editbuscar for igual ao código da consulta adicionar todos os registros, aí ai tipo q adicionando, varios codigos um embaixo do outro.
Na realidade estou tendando desenvolver uma entrada de produdos para o estoque !
espero q tenhan intendido. vlw
Thiagoangra2
Curtir tópico
+ 0Posts
05/10/2009
Facc
em que momento dá o erro?
Gostei + 0
05/10/2009
Thiagoangra2
da erro nesta linha, quer dizer na hora q salva > dm.cdsent.Post;
eu deixei esta linha em comentário, e nau deu erro, mais o codigo está substituindo o outro deve ser pq está linha nau está sendo executada nau é?
se tivesse ativa essa linha ela add e salvava certo? axo q sim...
enfim, o erro nesta linha!
Gostei + 0
05/10/2009
Facc
Verifique a sua base e se atente naqueles NOT NULL
Gostei + 0
05/10/2009
Thiagoangra2
sim no meu banco de dados, tem 4 campos q são not null
codigo
nome
pcompra
pvenda
o q eu faço?
Gostei + 0
05/10/2009
Facc
Gostei + 0
05/10/2009
Thiagoangra2
foi mal cara, mais como assim passar valores para eles?
ao meu intender eu to dizendo q dm.cdscodigo....:=dm.cdscodigo...
e assim para os outros, isso nau é atribuir valores para eles?
:?:
Gostei + 0
05/10/2009
Facc
Gostei + 0
05/10/2009
Thiagoangra2
entao amigo em que momento eu atribuo os valores para ele? to meio perdido... hhee
Gostei + 0
05/10/2009
Facc
Gostei + 0
05/10/2009
Thiagoangra2
é o suguinte fiz umas alterações no codigo, ele nau dá mais erro, mais agora ele substitui o codigo do dbgrid toda vez que add novo idtem
var
xcod:string;
begin
begin
xcod:=editbuscar.Text;
dm.cdsent.Close;
dm.cdsent.CommandText:=´select * from PRODUTOS where (codigo)=:pcod´;
dm.cdsent.Params[0].AsString:=uppercase(xcod);
dm.cdsent.Open;
end;
if dm.cdsentCODIGO.AsInteger=strtoint(editbuscar.text) then
begin
dm.cdsent.IndexFieldNames:=´CODIGO´;
if dm.cdsent.FindKey([dm.cdsentCODIGO.AsInteger]) then
begin
dm.cdsent.Edit;
dm.cdsent.FieldByName(´QUANTIDADE´).AsInteger:=dm.cdsent.fieldByName(´QUANTIDADE´).AsInteger+1;
dm.cdsent.Post;
end
else
begin
dm.cdsent.Insert;
dm.cdsentCODIGO.AsInteger:=dm.cdsentCodigo.AsInteger;
dm.cdsentCOD_ANTIGO.AsInteger:=dm.cdsentCOD_ANTIGO.AsInteger;
dm.cdsentQUANTIDADE.AsInteger:=1;
dm.cdsentNOME.AsString:=dm.cdsentNOME.AsString;
dm.cdsentGRUPO.AsInteger:=dm.cdsentGRUPO.AsInteger;
dm.cdsentSUBGRUPO.AsInteger:=dm.cdsentSUBGRUPO.AsInteger;
dm.cdsentFABRICANTE.AsInteger:=dm.cdsentFABRICANTE.AsInteger;
dm.cdsentPCOMPRA.AsInteger:=dm.cdsentPCOMPRA.AsInteger;
dm.cdsentPVENDA.AsInteger:=dm.cdsentPVENDA.AsInteger;
dm.cdsentDT_CADASTRO.AsDateTime:=dm.cdsentDT_CADASTRO.AsDateTime;
dm.cdsent.Post;
end;
end;
end;
dá uma olhada o q tem de errado, obrigado
Gostei + 0
14/10/2009
Thiagoangra2
procedure Tfrment.BitBtn1Click(Sender: TObject);
var
xcod:string;
begin
xcod:=editbuscar.Text;
dm.cdsproduto.Close;
dm.cdsproduto.CommandText:=´select * from PRODUTOS where (codigo)=:pcod´;
dm.cdsproduto.Params[0].AsString:=uppercase(xcod);
dm.cdsproduto.Open;
cdsent.Open;
if dm.cdsproduto.IsEmpty=false then
begin
cdsent.IndexFieldNames:=´CODIGO´;
if cdsent.FindKey([dm.cdsprodutoCODIGO.AsInteger]) then
begin
cdsent.Edit;
cdsent.FieldByName(´QUANTIDADE´).AsInteger:=cdsent.fieldByName(´QUANTIDADE´).AsInteger+1;
cdsent.Post;
end
else
begin
cdsent.Append;
cdsentCODIGO.AsInteger:=dm.cdsprodutoCodigo.AsInteger;
cdsentCOD_ANTIGO.AsInteger:=dm.cdsprodutoCOD_ANTIGO.AsInteger;
cdsentQUANTIDADE.AsInteger:=1;
cdsentNOME.AsString:=dm.cdsprodutoNOME.AsString;
cdsentGRUPO.AsInteger:=dm.cdsprodutoGRUPO.AsInteger;
cdsentSUBGRUPO.AsInteger:=dm.cdsprodutoSUBGRUPO.AsInteger;
cdsentFABRICANTE.AsInteger:=dm.cdsprodutoFABRICANTE.AsInteger;
cdsentPCOMPRA.AsInteger:=dm.cdsprodutoPCOMPRA.AsInteger;
cdsentPVENDA.AsInteger:=dm.cdsprodutoPVENDA.AsInteger;
cdsentDT_CADASTRO.AsDateTime:=dm.cdsprodutoDT_CADASTRO.AsDateTime;
cdsentDT_CADASTRO.AsString:=datetostr(date);
cdsent.Post;
end;
editbuscar.SetFocus;
end;
end;
acontece q quando ele encontra o produto, ele exibe todos os produtos no dbgrid, mais eu só queria q aparecesse o codigo q correspondente
me ajudem por favor, brigadao.
Gostei + 0
14/10/2009
Thiagoangra2
procedure Tfrment.BitBtn1Click(Sender: TObject);
var
xcod:string;
begin
xcod:=editbuscar.Text;
dm.cdsproduto.Close;
dm.cdsproduto.CommandText:=´select * from PRODUTOS where (codigo)=:pcod´;
dm.cdsproduto.Params[0].AsString:=uppercase(xcod);
dm.cdsproduto.Open;
cdsent.Open;
if dm.cdsproduto.IsEmpty=false then
begin
cdsent.IndexFieldNames:=´CODIGO´;
if cdsent.FindKey([dm.cdsprodutoCODIGO.AsInteger]) then
begin
cdsent.Edit;
cdsent.FieldByName(´QUANTIDADE´).AsInteger:=cdsent.fieldByName(´QUANTIDADE´).AsInteger+1;
cdsent.Post;
end
else
begin
cdsent.Append;
cdsentCODIGO.AsInteger:=dm.cdsprodutoCodigo.AsInteger;
cdsentCOD_ANTIGO.AsInteger:=dm.cdsprodutoCOD_ANTIGO.AsInteger;
cdsentQUANTIDADE.AsInteger:=1;
cdsentNOME.AsString:=dm.cdsprodutoNOME.AsString;
cdsentGRUPO.AsInteger:=dm.cdsprodutoGRUPO.AsInteger;
cdsentSUBGRUPO.AsInteger:=dm.cdsprodutoSUBGRUPO.AsInteger;
cdsentFABRICANTE.AsInteger:=dm.cdsprodutoFABRICANTE.AsInteger;
cdsentPCOMPRA.AsInteger:=dm.cdsprodutoPCOMPRA.AsInteger;
cdsentPVENDA.AsInteger:=dm.cdsprodutoPVENDA.AsInteger;
cdsentDT_CADASTRO.AsDateTime:=dm.cdsprodutoDT_CADASTRO.AsDateTime;
cdsentDT_CADASTRO.AsString:=datetostr(date);
cdsent.Post;
end;
editbuscar.SetFocus;
end;
end;
acontece q quando ele encontra o produto, ele exibe todos os produtos no dbgrid, mais eu só queria q aparecesse o codigo q correspondente
me ajudem por favor, brigadao.
Gostei + 0
14/10/2009
Thiagoangra2
procedure Tfrment.BitBtn1Click(Sender: TObject);
var
xcod:string;
begin
xcod:=editbuscar.Text;
dm.cdsproduto.Close;
dm.cdsproduto.CommandText:=´select * from PRODUTOS where (codigo)=:pcod´;
dm.cdsproduto.Params[0].AsString:=uppercase(xcod);
dm.cdsproduto.Open;
cdsent.Open;
if dm.cdsproduto.IsEmpty=false then
begin
cdsent.IndexFieldNames:=´CODIGO´;
if cdsent.FindKey([dm.cdsprodutoCODIGO.AsInteger]) then
begin
cdsent.Edit;
cdsent.FieldByName(´QUANTIDADE´).AsInteger:=cdsent.fieldByName(´QUANTIDADE´).AsInteger+1;
cdsent.Post;
end
else
begin
cdsent.Append;
cdsentCODIGO.AsInteger:=dm.cdsprodutoCodigo.AsInteger;
cdsentCOD_ANTIGO.AsInteger:=dm.cdsprodutoCOD_ANTIGO.AsInteger;
cdsentQUANTIDADE.AsInteger:=1;
cdsentNOME.AsString:=dm.cdsprodutoNOME.AsString;
cdsentGRUPO.AsInteger:=dm.cdsprodutoGRUPO.AsInteger;
cdsentSUBGRUPO.AsInteger:=dm.cdsprodutoSUBGRUPO.AsInteger;
cdsentFABRICANTE.AsInteger:=dm.cdsprodutoFABRICANTE.AsInteger;
cdsentPCOMPRA.AsInteger:=dm.cdsprodutoPCOMPRA.AsInteger;
cdsentPVENDA.AsInteger:=dm.cdsprodutoPVENDA.AsInteger;
cdsentDT_CADASTRO.AsDateTime:=dm.cdsprodutoDT_CADASTRO.AsDateTime;
cdsentDT_CADASTRO.AsString:=datetostr(date);
cdsent.Post;
end;
editbuscar.SetFocus;
end;
end;
acontece q quando ele encontra o produto, ele exibe todos os produtos no dbgrid, mais eu só queria q aparecesse o codigo q correspondente
me ajudem por favor, brigadao.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)