amadis
29-04-2006, 22:52:14
Que tal Gente.
Hace tiempo he posteado preguntando como filtrar o hacer locate sobre campos calculados (lookup) (en este caso nombres de clientes en una tabla con sus codigos y en otra tabla, en la que deseo filtrar numeros de cliente y otros datos de servicios que tiene ese cliente)
Habia solucionado todo trabajando con los ClientDataSet pero a medida que los registros crecen se hace sumamente lento (corriendo en un P4 2.4 512mb)
Si aplico un filtro sobre la tabla serviciosyclientes, en el campo cliente que es un String lookup tomado de la tabla cliente con su codigo me acusa error.
Lo mismo si hago un locate en el mismo campo.
Asi que buscando en el foro encontre que para busquedas avanzadas se usa OnFilterRecord pero no he logrado lo que quiero, mas bien no se usarlo.
Lo que yo necesito es filtrar la tabla serviciosyclientes (que esta conectada a un DBgrid )y mostrar allí solo los resultados del filtro.
Criterio de busqueda --> POR NOMBRE en un Edit y la idea es que en cada OnChange del Edit vaya actualizando el filtro. para lo cual en onchange puse FILTER:= false; y luego lo paso a true.
Pero no me muestra nada en la Grilla.
Abajo adjunto el codigo que en mi ignorancia armé.
procedure serviciosyclientes, FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
var
nombre: String;
begin
nombre := Edcli.text + '*';
Accept := Dataset['Cliente'] = QuotedStr(nombre);
{ Cliente es el campo String calculado mediante el campo codcli de la tabla actual sobre el campo codigo de la tabla clientes]
end;
Les agradecería su ayuda, comentarios o cualquier orientacion que me puedan dar.
Cualquier forma de filtrar un lookup sera bien recibida
Gracias
Amadís
-------------------------------------
NO A LAS FABRICAS DE CELULOSA
Hace tiempo he posteado preguntando como filtrar o hacer locate sobre campos calculados (lookup) (en este caso nombres de clientes en una tabla con sus codigos y en otra tabla, en la que deseo filtrar numeros de cliente y otros datos de servicios que tiene ese cliente)
Habia solucionado todo trabajando con los ClientDataSet pero a medida que los registros crecen se hace sumamente lento (corriendo en un P4 2.4 512mb)
Si aplico un filtro sobre la tabla serviciosyclientes, en el campo cliente que es un String lookup tomado de la tabla cliente con su codigo me acusa error.
Lo mismo si hago un locate en el mismo campo.
Asi que buscando en el foro encontre que para busquedas avanzadas se usa OnFilterRecord pero no he logrado lo que quiero, mas bien no se usarlo.
Lo que yo necesito es filtrar la tabla serviciosyclientes (que esta conectada a un DBgrid )y mostrar allí solo los resultados del filtro.
Criterio de busqueda --> POR NOMBRE en un Edit y la idea es que en cada OnChange del Edit vaya actualizando el filtro. para lo cual en onchange puse FILTER:= false; y luego lo paso a true.
Pero no me muestra nada en la Grilla.
Abajo adjunto el codigo que en mi ignorancia armé.
procedure serviciosyclientes, FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
var
nombre: String;
begin
nombre := Edcli.text + '*';
Accept := Dataset['Cliente'] = QuotedStr(nombre);
{ Cliente es el campo String calculado mediante el campo codcli de la tabla actual sobre el campo codigo de la tabla clientes]
end;
Les agradecería su ayuda, comentarios o cualquier orientacion que me puedan dar.
Cualquier forma de filtrar un lookup sera bien recibida
Gracias
Amadís
-------------------------------------
NO A LAS FABRICAS DE CELULOSA