Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DBGrid con restricciones (https://www.clubdelphi.com/foros/showthread.php?t=76121)

DOS 10-10-2011 18:11:36

DBGrid con restricciones
 
Hola a todos
Resulta que tengo dos tablas:
"mesas" nro-mesa ubicacion ocupado
............1..............20...........1
............2..............21...........0
.............3..............22...........1
Puden ser muchas mesas 1 o 0 para identificar si esta ocupado o libre
"ubicacion" nro-ubicacion ubicacion
......................20.............adentro
......................21.............barra
......................22.............afuera
con las distintas ubicaciones adentro, afuera, barra, etc. lo que se ve en la tabla es lo siguiente
nro-mesa ubicacion
.....1.........adentro
.....2.........adentro etc
Ahora se puede restringir para que me muestre las que ocupado estan igual a 1 sin hacer una consulta?
Desde ya muchas gracias.

MLROJO 10-10-2011 19:22:22

Hola,

No nos comentas que componentes estas usando, no obstante suponiendo que usas un ADODataSet o similar.. (ADOQuery, ADOTable, etc..) existe la propiedad Filter que es lo mas parecido o lo que creo que mas se aproxima a lo que buscas, aunque bueno seguramente existan otras formas que desconozco.

Te pongo un ejemplo sacado de la ayuda de delphi:

Código Delphi [-]
with ADODataSet1 do begin

  Filtered := False;
  Filter := 'State = ' + QuotedStr('CA') + ' OR ' +
    'State = ' + QuotedStr('CA');
  Filtered := True;

end;


Espero que te sirva de ayuda, ya nos contarás.

Saludos.

DOS 10-10-2011 19:30:12

mmm... son Ttable. y se muestran e un DBGrid.

MLROJO 10-10-2011 20:05:47

Pues el ejemplo que te pongo te serviría para aplicarlo también al TTable.

Pruébalo, a ver si te sirve.

Saludos.

DOS 10-10-2011 20:18:59

Para serte sincero ni siquiera se donde poner ese codigo.:(

MLROJO 10-10-2011 20:34:15

Pones un botón.
Pulsas doble click sobre él (para acceder al evento OnClick)
Pones el código, quedando similar a esto:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
   with Table1 do begin

      Filtered := False;
      Filter := 'Campo = 1';
      Filtered := True;

   end;
end;

Sustituyendo lo que hay entre comas simples en "Campo = 1" por tu expresión.

Esto lo que hace es desactivar el filtro del TTable, indicarle una restricción y activar el filtro nuevamente.

Espero que te quede algo mas claro.

Saludos.

Chris 10-10-2011 20:45:31

Puedes utilizar el evento OnFilter. Este evento te brinda la oportunidad de probar cada uno y todos los registros para determinar si se muestran o no. Lo que estás intentando hacer se le conoce como Client Filter, Filtros del lado Cliente.

Saludos,
Chris

DOS 11-10-2011 01:43:36

Muchas gracias


La franja horaria es GMT +2. Ahora son las 22:07:56.

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