Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Búsqueda en DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=87475)

Luis.Lapuente 11-01-2015 02:37:23

Búsqueda en DBGrid
 
Buena noche a toda la comunidad. Bueno tengo otro consulta no sé si alguien podría ayudarme quiero hacer una búsqueda en un dbgrid con un edit. Pero quiero que me muestre el resultado solo cuando le dé al boto buscar. Ejemplo tengo mi dbgrid en blanco cuando coloque el código que quiero en el edit y le doy al boto buscar ese resultado me lo muestre en el dbgrid y a si con todas las búsquedas. Algo así como los punto de venta que el dbgri está en blanco y solo cuando buscan el código del producto muestra el resultado.

radenf 11-01-2015 12:37:14

Estimado Luis.Lapuente :

No nos dices cual BD utilizas.
Para que el DBGrid muestre los resultados de una búsqueda lo mejor es utilizar un TQuery, que debes unir a un TDataSource y este al DBGrid.

En el evento OnClick del BotónBuscar coloca este código:

Código Delphi [-]
Query1.Close;
Query1.SQL.Clear;
Query1.Sql.text:='select * from TuTabla where TuCampo like '+QuotedStr(Edit1.Text+'%')+'order by TuCampo' ;
Query1.Open;

Ojalá te sirva
Saludos

Luis.Lapuente 11-01-2015 20:11:14

Gracias radenf
 
Hola radenf efectivamente lo que me mandaste me funciona pero no como yo busco, te cuento yo quiero que me dbgrid este en blanco y que cuando yo coloque el código en el edit hay recién salga información en el dbgrid. Estoy trabajando con SQL SERVER 2012 y una tabla que se llama saprod, donde tengo la codprod, descrip, precio y cantidad.
Gracias por tu apoyo

Luis.Lapuente 11-01-2015 20:51:02

Gracias radenf si funciona
 
Hola radenf efectivamente lo que me mandaste me funciona pero me repite la siguiente búsqueda en el mismo lugar como podría hacer para que valla colocando uno tras de otro en el dbgrid.
Estoy trabajando con SQL SERVER 2012 y una tabla que se llama saprod, donde tengo la codprod, descrip, precio y cantidad.

Ejemplo
101-100 en una línea del dbgrid
101-50 en otra línea
101-30 en otra y así pueda llenado la cantidad de registro que yo valla buscando
Gracias por tu apoyo

radenf 11-01-2015 21:52:04

Si le pones al TQuery su propiedad Active:= False, el DBGrid debe aparecer vacío.
Para llenarlo haces la operación inversa, es decir:
Código Delphi [-]
TQuery.Active:= True;
Para que no se repitan los registros podrías utilizar
Código Delphi [-]
 Edit1.Clear;
antes de ingresar un nuevo valor en el Edit1.

Ve tú en que eventos de tu código quedan mejor, para lograr tu objetivo.
Si deseas que las diferentes búsquedas se coloquen una tras otra, entonces este procedimiento no te sirve, ya que el DBGrid estaría mostrando sólo los registros que devuelve el Query, por lo que creo que deberás crear una instancia intermedia, que vaya almacenando los registros y los muestre en el DBGrid. Se me ocurre que podrías usar una Tabla temporal o un StringList.

Saludos


La franja horaria es GMT +2. Ahora son las 18:56:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi