Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #41  
Antiguo 30-09-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
procedure TFClientes.Edit1Change(Sender: TObject);
var
   Filtro : String;
begin
   If (Edit1.Text <> '') then
   begin
      datamodule1.tarchivo.Filtered := False;
      If ComboBox1.Text = 'Numero' then Filtro := 'Numero Like '+Edit1.Text
         else If ComboBox1.Text = 'Nombre' then Filtro := 'Nombre Like '''+ Edit1.Text + '*''';

      datamodule1.tarchivo.Filter := Filtro;
      datamodule1.tarchivo.Filtered := True
   end
   else datamodule1.tarchivo.Filtered := False;
end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #42  
Antiguo 30-09-2011
Avatar de Darkseratul
Darkseratul Darkseratul is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 58
Poder: 14
Darkseratul Va por buen camino
Thumbs up Gracias

Cita:
Empezado por Caral Ver Mensaje
Hola
Código Delphi [-]
procedure TFClientes.Edit1Change(Sender: TObject);
var
   Filtro : String;
begin
   If (Edit1.Text <> '') then
   begin
      datamodule1.tarchivo.Filtered := False;
      If ComboBox1.Text = 'Numero' then Filtro := 'Numero Like '+Edit1.Text
         else If ComboBox1.Text = 'Nombre' then Filtro := 'Nombre Like '''+ Edit1.Text + '*''';

      datamodule1.tarchivo.Filter := Filtro;
      datamodule1.tarchivo.Filtered := True
   end
   else datamodule1.tarchivo.Filtered := False;
end;
Saludos
Muchas gracias por responder invertir los los campos fue lo primero que pensé funciona pero me da el mismo resultado

que el código anterior

Código Delphi [-]
procedure TFClientes.Edit1Change(Sender: TObject);
begin
  // Siempre se quita el filtro
  datamodule1.tarchivo.Filtered := False;

  // Hacer algo si hay texto
  if (Edit1.Text <> '') then
  begin
    // Crear el filtro
    if CheckBox1.Checked  then
    begin
      datamodule1.tarchivo.Filter := 'Nombre Like ''' + Edit1.Text + '*''';
      datamodule1.tarchivo.Filtered := True
    end
    else if CheckBox2.Checked  then
      begin
      datamodule1.tarchivo.Filter := 'Numero Like '+ Edit1.Text;
      datamodule1.tarchivo.Filtered := True
    end
    else
    datamodule1.tarchivo.Filtered := False;
   end;
end;

paso lo mismo es como me dijiste que se salta el Like creo que el error esta en la tabla en la base de datos
Responder Con Cita
  #43  
Antiguo 30-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Darkseratul.

Cita:
Eso no puede pasar por que el el evento de onclick del chebox le digo que ponga en false los demas chebox
Como veo que que los CheckBox son excluyentes, te convendría usar un RadioGroup.

Uff!! realmente no sé si no me he perdido con tanto mensaje... , pero creo que tu error es intentar usar LIKE con un campo numérico.

Un ejemplo usando RadioGroup:
Código Delphi [-]
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  with DataModule1.tarchivo do
  begin
    Filtered:= False;
    case RadioGroup1.ItemIndex of
      0: Filter:= 'Nombre Like ' + QuotedStr(Edit1.Text + '*');
      1: Filter:= 'Numero >= ' + QuotedStr(Edit1.Text);
      2: Filter:= 'OtroCampo Like ' + QuotedStr(Edit1.Text + '*');
      ...
    end;
    Filtered:= True;
  end;
  RadioGroup1.ItemIndex:= -1;
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #44  
Antiguo 30-09-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
El codigo sirve, lo que pasa es que creo que no es lo que buscas, te explico:
Cuando haces una busqueda de un texto, el filtro se comporta como debe, va buscando letra por letra ya que son palabras y una palabra es un todo.
Cuando se busca por numero estos van progresivamente, osea:
0
1
2
3
etc.......
Si quieres buscar el numero 1234, tendrás que pasar por el 1233 antes ya que es el numero anterior.
NO puedes buscar un numero por su inicio, osea todos los que empiecen por 1, por lo menos no con este tipo de filtros.
Para hacer eso se necesitaría, me imagino, hacer una función que lo haga y pasar ese valor al filtro.
Espero que me entiendas.
Saludos
PD: El código de ecfisa filtra teniendo el cuenta si es mayor o igual, pero no sirve en este caso, por que tampoco filtrara solo los que empiecen por un numero determinado que es, creo, lo que buscas, no lo se.
__________________
Siempre Novato

Última edición por Caral fecha: 30-09-2011 a las 02:49:51.
Responder Con Cita
  #45  
Antiguo 30-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
El código de ecfisa filtra teniendo el cuenta si es mayor o igual, pero no sirve en este caso, por que tampoco filtrara solo los que empiecen por un numero determinado que es, creo, lo que buscas, no lo se.
Totalmente de acuerdo, si lo que desea es hacer una busqueda incremental sobre un campo numérico no funcionará. Sólo que tratándose de magnitudes me pareció lógico comparar por mayor o igual.

Cita:
NO puedes buscar un numero por su inicio, osea todos los que empiecen por 1, por lo menos no con este tipo de filtros.
También de acuerdo, yo tampoco conozco que haya manera de hacelo.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-09-2011 a las 03:59:10.
Responder Con Cita
Respuesta



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
Valores OldValue RicardoNavarro Firebird e Interbase 1 26-04-2007 17:57:54
Envio de valores Roilo PHP 8 19-10-2006 17:10:16
Problemas por sumas de valores grandes CamiloU Varios 4 23-06-2006 00:12:01
regresar valores Genner MS SQL Server 5 03-04-2006 13:55:43
Redondeo de valores JODELSA Varios 1 23-08-2003 18:33:50


La franja horaria es GMT +2. Ahora son las 11:56:31.


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