Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-12-2005
zerelho zerelho is offline
Miembro
 
Registrado: mar 2004
Posts: 28
Poder: 0
zerelho Va por buen camino
Unhappy Filtrar una tabla a partir de una seleccion hecha en una rejilla

Hola a todos, estoy atascado con un problema que no doy resuelto y creo que no es demasiado complicado.
El tema es que a partir de una tabla que muestro en una rejilla quiero permitir que el usuario pueda seleccionar una serie de registros de la misma y que tenga la opción de "filtrar" la tabla de forma que solo aparezcan los que acaba de seleccionar.
¿Como podría hacer esto?

Tengo el metodo para recorrer los registros seleccionados de la rejilla pero no se como podría hacer para asociarlos con la propiedad Filter de la tabla o con el metodo OnFilterRecord (creo que esto último debe ser mas fácil).

Si alguien me echase un cable le estaría muy agradecido.

Código Delphi [-]
  if RejillaDatos.SelectedRows.Count>0 then
    with RejillaDatos.DataSource.DataSet do
      begin
          for i:=0 to RejillaDatos.SelectedRows.Count-1 do
          begin
            RejillaDatos.GotoSelection(i);
            // estoy en la seleccion, ahora como hago?
          end;
      end;
Responder Con Cita
  #2  
Antiguo 09-12-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
La verdad es que jamás he usado esa propiedad Filter que mencionas, siempre he usado querys, pero así, de momento, se me ocurre que puedes poner un filtro de "cod=1 and cod=5 and cod=14" etc. suponiendo que tengas un campo cod.

Creo que te refieres a eso.
Responder Con Cita
  #3  
Antiguo 09-12-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 23
vtdeleon Va por buen camino
Saludos

Mira a ver si este codigo que he modificado te sirve
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
  i, j: Integer;
  s:string;
begin
  if DBGrid1.SelectedRows.Count>0 then
    with DBGrid1.DataSource.DataSet do begin
      GotoBookmark(pointer(DBGrid1.SelectedRows.Items[0]));
      s:='custno='+ fields[0].AsString;//Custno y fields[0] es el campo a filtrar
      for i:=1 to DBGrid1.SelectedRows.Count-1 do
      begin
        GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
        s:=s + ' or custno='+ fields[0].AsString;
      end;
      Filter:=s;
    end;
end;
Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #4  
Antiguo 19-12-2005
zerelho zerelho is offline
Miembro
 
Registrado: mar 2004
Posts: 28
Poder: 0
zerelho Va por buen camino
Thumbs up Exactamente lo que buscaba

Gracias a los 2, eso era exactamente lo que quería, lo que pasa es que estaba intentando resolver la cosa de una forma enrevesada y a la cosa era bastante mas simple.
Lo que me surge ahora es mas una curiosidad, ¿que diferencia hay entre posicionarse en un registro seleccionado con
Código Delphi [-]
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
como hace vtdeleon y con
Código Delphi [-]
RejillaDatos.GotoSelection(i);
como hago yo?
¿Es mas rápida una que la otra?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:48:36.


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
Copyright 1996-2007 Club Delphi