criar uma pesuisa sql produtos

Delphi

13/08/2009

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?


Thiagoangra2

Thiagoangra2

Curtidas 0

Respostas

Facc

Facc

13/08/2009

qual é o erro que está dando?

Ficou meio vago sua duvida


GOSTEI 0
Vmlima

Vmlima

13/08/2009

Olá


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

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

Thiagoangra2

13/08/2009

Olá 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.



ok, vo tentar fazer aki! abrigado!


GOSTEI 0
Vmlima

Vmlima

13/08/2009

Opa...
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

Thiagoangra2

13/08/2009

bom vlw pela dica deu certinho aki depois de muita luuta :o


GOSTEI 0
Vmlima

Vmlima

13/08/2009

Que bom cara...

Agora só falta vc colocar resolvido no tópico
:)



att.


GOSTEI 0
Thiagoangra2

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;


GOSTEI 0
Vmlima

Vmlima

13/08/2009

hehe...
Bom tbm...
Mas agora só falta mesmo o [Resolvido] no tópico...


GOSTEI 0
POSTAR