Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ayuda con dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=76998)

jacb1976 13-12-2011 00:55:08

Ayuda con dbgrid
 
Hola compañeros, tengo un problema, estoy empezando a programar en delphi, ahorita estoy haciendo una aplicacion, estoy en la seccion de reportes y necesito cargar un dbgrid unicamente que aparescan los registros que contengan la clave de la persona, es decir, tengo un formulario en el cual tengo edit en cual le digo al usuario que teclee la clave de usuario y en el dbgrid aparescan los registros que tenga esta clave, tal ves les suene muy sencillo pero no tengo idea de que componentes usar y como desarrollar la sintaxis, les pido me ayuden con un ejemplo x, para poder resolver mi problema, de antemano muchas gracias.

ecfisa 13-12-2011 01:01:40

Hola jacb1976.

¿ Con que base de datos y que componentes estas trabajando ?
Te hago esta pregunta por que el filtrado por la clave de persona lo debes hacer sobre el TDataSet no sobre el TDBGrid. Por que simplificando el concepto, el DBGrid es sólo la representación visual de los datos existentes en un DataSet o consulta.

Un saludo.

jacb1976 13-12-2011 01:06:05

la base de datos es en paradox 7, ese es el problema necesito un ejemplo visual para entender, voy empezando con el leguaje y las base de datos

ecfisa 13-12-2011 03:01:42

Hola jacb1976.

Te pongo dos ejemplos, el primero usando un TQuery:
Código Delphi [-]
procedure TForm1.btnFiltrarClick(Sender: TObject);
begin
  with Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM TABLA '); // TABLA = Nombre de tu tabla
    SQL.Add('WHERE CLAVEPERSONA = :CLAVE'); // CLAVEPERSONA = Nombre de tu campo
    ParamByName('CLAVE').AsString:= Edit1.Text;
    Open;
  end;
end;

El segundo usando la propiedad Filter de un TTable:
Código Delphi [-]
procedure TForm1.btnFiltrarClick(Sender: TObject);
begin
  Table1.Filtered:= False;
  Table1.Filter:= 'CLAVEPERSONA =' + QuotedStr(Edit1.Text); // CLAVEPERSONA = Nombre de tu campo
  Table1.Filtered:= True;
end;

Para ambos casos vas a necesitar los siguientes componentes:
  • Un TDBGrid
  • Un TDataSource
  • Un TQuery o TTable
  • Un TButton para aplicar el código de filtrado (u otro componente o evento)

La relación la debes entablar ajustando las siguientes propieades:
  • DBGrid1.DataSource <- DataSource1
  • DataSource1.DataSet <- Query1 o Table1
Esto último lo podés hacer visualmente desde el Object Inspector

No dejes de consultar cualquier duda que te quede.

Un saludo.

jacb1976 13-12-2011 03:05:08

Muchas gracias ahorita mismo lo pruebo y si me atoro te vuelvo a molestar gracias.

jacb1976 13-12-2011 04:01:48

En donde veo o ubico la opcion filter?

ecfisa 13-12-2011 04:31:53

Cita:

Empezado por jacb1976 (Mensaje 420998)
En donde veo o ubico la opcion filter?

Hola.

Podés acceder a la propiedad Filter ya sea por código como en el ejemplo que te puse, o también desde el Object Inspector.
La tenés que ubicar en algún evento. Por ejemplo en el evento OnClick de un TButton como en el ejemplo. La propiedad Filtered activa o desactiva el filtro ya sea que su valor sea True o False. Es decir, si en tiempo de diseño, haces doble click sobre el Button podés poner el código:
Código Delphi [-]
  Table1.Filtered:= False;
  Table1.Filter:= 'CLAVEPERSONA =' + QuotedStr(Edit1.Text); 
  Table1.Filtered:= True;
dentro de la cabecera que automáticamente te genera Delphi.

Saludos.


La franja horaria es GMT +2. Ahora son las 02:09:08.

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