Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-06-2008
Rancy Rancy is offline
Miembro
 
Registrado: may 2008
Posts: 17
Poder: 0
Rancy Va por buen camino
Cita:
Empezado por Fenareth Ver Mensaje

Código Delphi [-]
Tabla.Open;
        Tabla.Filter := 'CAMPO = '+QuotedStr(Combobox.Text);
        Tabla.Filtered := TRUE;

Saludos
Gracias por la respuesta que le diste a zeta Fenareth, a mi tambien me ha sido muy útil.

Queria preguntar si, a parte, existe la posibilidad de filtrar la tabla de modo que muestre todos los registros que coinciden parcialmente con el string según el que se filtra.
Lo diré de otro modo por si no me he explicado bien:
el caso es que mi código, vendria a ser en parte asi:

Código Delphi [-]
TablaOpen;
        Tabla.Filter := 'CAMPO = '+QuotedStr(Edit.Text);
        Tabla.Filtered := TRUE;

Como veis la diferencia es que uso un Edit con el que dejo introducir al usuario el string según el que filtrar. Lo que pregunto es si es posible que introduciendo por ejemplo "CA" el filtro haga visibles todos aquellos campos que empiecen asi (por ejemplo: Carla, Carlos, Carmen, etc...)

Lo cierto es que he estado buscando en la ayuda de delphi, y he encontrado en la información sobre el member FilterOptions, por defecto la opcion de buscar según sólo una parte del string esta activada para todos los strings que terminen en asterisco (*). Lo que hago entonces es introducir un asterisco así;

Código Delphi [-]
TablaOpen;
        Tabla.Filter := 'CAMPO = '+QuotedStr(Edit.Text+'*');
        Tabla.Filtered := TRUE;

Pero tampoco consigo que se solucione de este modo, por eso queria preguntar si a alguien se le ocurre que puedo estar haciendo mal, si tal vez no es posible lo que intento, o si se hace de otro modo.

Gracias por adelantado a todos quienes se tomen la molestia de contestarme.

Saludos!

Última edición por Rancy fecha: 23-06-2008 a las 11:35:59. Razón: Para ver mejor el quote de fenareth
Responder Con Cita
  #2  
Antiguo 23-06-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
rancy yo te recomiendo siempre utilizar consultas, ya que asi no te traes todos los registros del servidor y los "filtras" en el propio servidor. Pero si aun sigues empeñado en hacerlo mediante filtros je je je primero me tendrás que decir con que BD trabajas si es con mysql, interbase.. etc el comodin es % de tal manera que, aparte de utilizar el like, quedaría asi:

Código:
Adotable1.filtered:=false;
Adotable1.filter:='Desc_Cliente'+' like ' + QuotedStr(Edit1.Text+'%');
Adotable1.filtered:=true;
Saludos, Tony
Responder Con Cita
  #3  
Antiguo 25-06-2008
Rancy Rancy is offline
Miembro
 
Registrado: may 2008
Posts: 17
Poder: 0
Rancy Va por buen camino
Muchas gracias! Me funcionó perfectamente.

Bueno olvidé decir como guardo los datos es cierto. Esque necesito una aplicación lo mas simple posible, que pueda funcionar en pc's sin instalar nada; por eso, y porque la información es poca; lo guardo todo en XML.

De nuevo te agradezco tu ayuda, que me fué muy útil!
Responder Con Cita
  #4  
Antiguo 02-07-2008
Rancy Rancy is offline
Miembro
 
Registrado: may 2008
Posts: 17
Poder: 0
Rancy Va por buen camino
Respecto al mismo tema, tengo una duda mas. Cual seria la expresion equivalente a QuotedStr, si lo que contiene la variable que hay a continuación es un entero?

Pongo aqui la parte del codigo, por si ayuda a entender mi duda:
Código Delphi [-]
procedure TForm2.EditCampoBuscarChange(Sender: TObject);
var
anyo: integer;
begin
  DadesClients.Open;
  DadesClients.Filter := ((ComboboxCampoBuscar.Text + ' like '+ QuotedStr(EditCampoBuscar.Text+'%')) +'and Edad <'+ (anyo));
  DadesClients.Filtered := TRUE;
end;
El error dice que los tipos string & integer son incompatibles ( refiriendose al campo Edad, que es un entero, y a la variable anyo, que también lo es. Como doy a entender que debe tratarlos como tales y no como string?

Gracias por adelantado. :-)
Responder Con Cita
  #5  
Antiguo 02-07-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
El campo edad en tu bd será un entero pero tu estás componiendo un string en la propiedad filter de tu dataset, que es de tipo string. Con lo que todo lo que metas en esa propiedad debe ser un string, y lo único que lo diferencia son las comillas (quotes) cuando tu campo es varchar o sin comillas cuando es numérico. De tal forma que:

Código:
procedure TForm2.EditCampoBuscarChange(Sender: TObject);
var
anyo: integer;
begin
  DadesClients.Open;
  DadesClients.Filter := ((ComboboxCampoBuscar.Text + ' like '+ 
  QuotedStr(EditCampoBuscar.Text+'%')) +'and Edad <'+ inttostr(anyo));
  DadesClients.Filtered := TRUE;
end;
Saludos, Tony
Responder Con Cita
  #6  
Antiguo 02-07-2008
Rancy Rancy is offline
Miembro
 
Registrado: may 2008
Posts: 17
Poder: 0
Rancy Va por buen camino
Vaya, muchisimas gracias Tony. Respondes las preguntas mas rápido de lo que soy capaz de hacerlas!!!

Voy a porbar tu solución ahora mismo!

EDIT: En efecto, funciona.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
filtrar elementos de base de datos en delphi mediante combobox carlossc90 Tablas planas 3 05-06-2008 22:21:10
Filtrar ADOTable al seleccionar combobox jeysi Varios 3 24-01-2008 09:48:36
Filtrar por un campo de un dbgrid Ivan_25 C++ Builder 11 03-11-2005 11:29:44
filtrar por fechas y por un campo mas mainau Conexión con bases de datos 9 01-04-2004 16:23:16
Filtrar datos con los Combobox o DBComboBox thecarlos Varios 3 09-01-2004 09:55:15


La franja horaria es GMT +2. Ahora son las 09:45:53.


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