Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   filtrar registros en rxMemoryData (https://www.clubdelphi.com/foros/showthread.php?t=67798)

peccatum 06-05-2010 20:22:06

filtrar registros en rxMemoryData
 
Hola, trabajo con estos datasets, y no se como hacer para filtrar los registros que tengo en el.... por ejemplo si tengo clientes me interesaría filtrar por id_cliente....

Quisiera trabajar con esto como si pudiera agregarle la linea 'where cliente.id_cliente = :c' o 'where cliente.id_cliente = %' según el usuario decida...

he probado con la propiedades Filtered y Filter de una forma parecida a esta:

Código Delphi [-]
mdrest_cli_menu.DisableControls;

mdrest_cli_menu.Filter :=Format('[%s] %s %s', ['Id_cliente', '=', text]);

mdrest_cli_menu.Filtered := true;

mdrest_cli_menu.EnableControls;

pero me deja siempre la misma cantidad de registros, en otras palabras no funciona el filtro...

¿Alguien trabaja con tablas de memoria filtrando los datos y me puede decir de que manera funcionaría?

agradecido de antemano...

peccatum 07-05-2010 01:18:19

lo he resuelto gracias a este thread:

http://www.clubdelphi.com/foros/showthread.php?t=40171

peccatum 28-06-2010 22:44:50

hola otra vez...

lo que no he podido lograr es una búsqueda incremental dentro del rxMemoryData.. de la típica forma que se vaya filtrando a medida que se va escribiendo en un edit.... alguien podría ayudarme?

gracias...

peccatum 28-06-2010 23:08:55

dentro del evento OnFilterRecord no se como es la expresión correcta para que filtre de forma parcial...

he intentado

Código Delphi [-]
Accept := (IDSucursal = 'A*');

Y cambiando el asterisco por un '%' pero no resulta...

peccatum 03-07-2010 06:12:20

utilizando locate en modo incremental funciona

de la otra forma no lo logrué

:mad:

peccatum 03-07-2010 06:52:37

al final lo resolvi con la función pos

ji


lindo monologo me salio

johan 10-09-2012 01:36:29

Cita:

Empezado por peccatum (Mensaje 369061)
al final lo resolvi con la función pos

ji


lindo monologo me salio

podrias indicar como quedo la sentencia con el Pos..

ecfisa 10-09-2012 01:57:00

Hola johan.

La última actividad de peccatum en Club Delphi fue el 19-05-2011, así que me tomo la libertad de darte una respuesta por él.

Supongo que deseas que se vaya filtrando la tabla a medida que escribis algo en un componente como por ejemplo un Edit.

Si es así, podrías hacer:
Código Delphi [-]
procedure TForm1.tuDataSetFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  Accept := Edit1.Text = Copy(DataSet.FieldByName('tuCAMPO').AsString, 1, Length(Edit1.Text));
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  tuDataSet.Filtered := False;
  tuDataSet.Filtered := True;
end;

Saludos. :)


La franja horaria es GMT +2. Ahora son las 03:51:14.

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