criar uma pesuisa sql produtos
bom. to precisando com um probleminha. trabalho com delphi e banco de dados firebird. tenho um formulario de ´buscar produtos´ aonde nele preciso buscar os produtos por nome ou codigo e filtrando por grupo e subgrupo no formulario tem:
radiobuton(nome) edit(editbuscar) button(ok)
radiobuton(codigo)
(editcodigo1)DBLookupComboBox1(grupo)
(editcodigo2) DBLookupComboBox2(subgrupo)
grid
o formulario tem esses itens,mais ou menos nesse medelo, alguem poderia me dar uma ajuda?
radiobuton(nome) edit(editbuscar) button(ok)
radiobuton(codigo)
(editcodigo1)DBLookupComboBox1(grupo)
(editcodigo2) DBLookupComboBox2(subgrupo)
grid
o formulario tem esses itens,mais ou menos nesse medelo, alguem poderia me dar uma ajuda?
Thiagoangra2
Curtidas 0
Respostas
Facc
13/08/2009
qual é o erro que está dando?
Ficou meio vago sua duvida
Ficou meio vago sua duvida
GOSTEI 0
Vmlima
13/08/2009
Olá
Caro colega...
é assim, vc terá que fazer uma consulta baesada no valor dos seus componentes
Assim:
Coloque algo parecido com isso no seu botão ok
Att.
Caro colega...
é assim, vc terá que fazer uma consulta baesada no valor dos seus componentes
Assim:
var strsql : string begin strsql := ´select * from produtos where ´ if RadioBtnNome.Checked then strsql := strsql + ´ nome like ´´´¬´ + EditBuscar.Text + ´¬´´´ ; if RadioBtnCodigo.Checked then strsql := strsql + ´ codigo = ´ + EditBuscar.Text;´ strsql := strsql + ´ and grupo = DBlookupcomoboxGrupo.Text´; strsql := strsql + ´ and subgrupo = DBlookupcomoboxSubGrupo.Text´; end;
Coloque algo parecido com isso no seu botão ok
Att.
GOSTEI 0
Thiagoangra2
13/08/2009
qual é o erro que está dando?
Ficou meio vago sua duvida
entao na verdade nau tda dando erro, eu to precisando fazer!
GOSTEI 0
Thiagoangra2
13/08/2009
Olá
Caro colega...
é assim, vc terá que fazer uma consulta baesada no valor dos seus componentes
Assim:
Coloque algo parecido com isso no seu botão ok
Att.
var strsql : string begin strsql := ´select * from produtos where ´ if RadioBtnNome.Checked then strsql := strsql + ´ nome like ´´´¬´ + EditBuscar.Text + ´¬´´´ ; if RadioBtnCodigo.Checked then strsql := strsql + ´ codigo = ´ + EditBuscar.Text;´ strsql := strsql + ´ and grupo = DBlookupcomoboxGrupo.Text´; strsql := strsql + ´ and subgrupo = DBlookupcomoboxSubGrupo.Text´; end;
ok, vo tentar fazer aki! abrigado!
GOSTEI 0
Vmlima
13/08/2009
Opa...
esqueci de falar que vc tem que colocar esse strsql no componente da consulta...
esqueci de falar que vc tem que colocar esse strsql no componente da consulta...
var strsql : string begin strsql := ´select * from produtos where ´ if RadioBtnNome.Checked then strsql := strsql + ´ nome like ´´´¬´ + EditBuscar.Text + ´¬´´´ ; if RadioBtnCodigo.Checked then strsql := strsql + ´ codigo = ´ + EditBuscar.Text;´ strsql := strsql + ´ and grupo = DBlookupcomoboxGrupo.Text´; strsql := strsql + ´ and subgrupo = DBlookupcomoboxSubGrupo.Text´; qry.close; // aqui que vc faz a consulta qry.sql.text := strsql; qry.open; end;
GOSTEI 0
Thiagoangra2
13/08/2009
bom vlw pela dica deu certinho aki depois de muita luuta :o
GOSTEI 0
Vmlima
13/08/2009
Que bom cara...
Agora só falta vc colocar resolvido no tópico
:)
att.
Agora só falta vc colocar resolvido no tópico
:)
att.
GOSTEI 0
Thiagoangra2
13/08/2009
var
xnome:string;
sql:string;
begin
if (rbnome.Checked=true) then
begin
xnome:=editbuscar.Text;
sql:=´select * from PRODUTOS where upper(nome) like:pnome´;
if editgrupo.Text <> ´´ then
sql:= sql + ´ and grupo= :pg´ + ´ and subgrupo= :psub´;
dm.cdsbpro.Close;
dm.cdsbpro.CommandText:=sql;
dm.cdsbpro.Params[0].AsString:=uppercase(xnome+´¬´);
if editgrupo.Text <> ´´ then
dm.cdsbpro.Params[1].AsString:=(editgrupo.Text);
if editsub.Text <> ´´ then
dm.cdsbpro.Params[2].AsString:=(editsub.Text);
dm.cdsbpro.Open;
end
else
if (rbcodigo.Checked=true) then
begin
dm.cdsbpro.Close;
dm.cdsbpro.CommandText:=´select * from PRODUTOS where codigo=:=pcodigo´;
dm.cdsbpro.Params[0].AsString:=(editbuscar.Text);
dm.cdsbpro.Open;
end
else
if (rbnome.Checked=false) and (rbcodigo.Checked= false) then
begin
messagebox(frmbuscapro.Handle,´Informe o tipo de busca!´,´infomation´, mb_OK+mb_iconinformation);
end
end;
xnome:string;
sql:string;
begin
if (rbnome.Checked=true) then
begin
xnome:=editbuscar.Text;
sql:=´select * from PRODUTOS where upper(nome) like:pnome´;
if editgrupo.Text <> ´´ then
sql:= sql + ´ and grupo= :pg´ + ´ and subgrupo= :psub´;
dm.cdsbpro.Close;
dm.cdsbpro.CommandText:=sql;
dm.cdsbpro.Params[0].AsString:=uppercase(xnome+´¬´);
if editgrupo.Text <> ´´ then
dm.cdsbpro.Params[1].AsString:=(editgrupo.Text);
if editsub.Text <> ´´ then
dm.cdsbpro.Params[2].AsString:=(editsub.Text);
dm.cdsbpro.Open;
end
else
if (rbcodigo.Checked=true) then
begin
dm.cdsbpro.Close;
dm.cdsbpro.CommandText:=´select * from PRODUTOS where codigo=:=pcodigo´;
dm.cdsbpro.Params[0].AsString:=(editbuscar.Text);
dm.cdsbpro.Open;
end
else
if (rbnome.Checked=false) and (rbcodigo.Checked= false) then
begin
messagebox(frmbuscapro.Handle,´Informe o tipo de busca!´,´infomation´, mb_OK+mb_iconinformation);
end
end;
GOSTEI 0
Vmlima
13/08/2009
hehe...
Bom tbm...
Mas agora só falta mesmo o [Resolvido] no tópico...
Bom tbm...
Mas agora só falta mesmo o [Resolvido] no tópico...
GOSTEI 0