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 29-09-2011
Avatar de Darkseratul
Darkseratul Darkseratul is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 58
Poder: 16
Darkseratul Va por buen camino
Smile Claro lo tomo con calma

Cita:
Empezado por oscarac Ver Mensaje

te doy otro consejito.... que lei el otro dia en este mismo foro

sal a la calle relajate unos 20 min. tomate un cafe... si tienes mujer.. metete un polvito, pon tu cabeza en otra cosa y regresa
lo se, lo se pero lo que pasa es que ya llevo una semana tratando yo solo de hacer que esto funcione y pues como ya me atore pues pido ayuda a los mejores

muchas gracias por su tiempo amigos

a Caral que es el maestro

oscarac me llevas por un sendero que para mi es oscuro (query) se que se configuran con secuencias SQL lamentablemente no se SQL y mi tirada es primero hacer algo sencillo para ir escalando tendre que a prender SQL mucho antes de lo que esperaba

pero bueno muchas gracias amigos
Responder Con Cita
  #2  
Antiguo 29-09-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
bueno es la curva del aprendizaje
a mi tambien me costo algo de tiempo.. la ventaja es que yo ya venia programando en otros lenguajes y tenia las nociones y las ideas, pero con calma, otra cosa que te puedo decir viendo el ejemplo que pusiste

trata de utilizar al menos en la etapa de aprendizaje, los componentes que vienen con delphi, veo que estas usando Jedi, OJO no estoy diciendo que sea malo, solo que si queremos caminar primero debemos gatear espero se entienda

siempre trata de optimizar tu codigo, si tienes varios if trata de usar case, lee y sobre todo practica
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 29-09-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
Caral Va por buen camino
Hola
Pregunto:
El campo Numero tiene que ser numerico ?, no puede ser texto ?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 29-09-2011
Avatar de Darkseratul
Darkseratul Darkseratul is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 58
Poder: 16
Darkseratul Va por buen camino
Pues numerico

Cita:
Empezado por Caral Ver Mensaje
Hola
Pregunto:
El campo Numero tiene que ser numerico ?, no puede ser texto ?.
Saludos
lo puse numérico por que van los registros por numero

puse tu ejemplo en practica

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

      datamodule1.tarchivo.Filter := Filtro;
      datamodule1.tarchivo.Filtered := True
   end
   else datamodule1.tarchivo.Filtered := False;
end;

cuando lo pongo en nombre me da este error
argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros

y cuando le pongo en numero me dice
no se puede abrir filtro

de seguro estoy haciendo algo mal pero que sera ???
Responder Con Cita
  #5  
Antiguo 30-09-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
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
  #6  
Antiguo 30-09-2011
Avatar de Darkseratul
Darkseratul Darkseratul is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 58
Poder: 16
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
  #7  
Antiguo 30-09-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
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
  #8  
Antiguo 30-09-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
  #9  
Antiguo 29-09-2011
Avatar de Darkseratul
Darkseratul Darkseratul is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 58
Poder: 16
Darkseratul Va por buen camino
Thumbs up Muchas gracias

Cita:
Empezado por oscarac Ver Mensaje

siempre trata de optimizar tu codigo, si tienes varios if trata de usar case, lee y sobre todo practica
gracias por tus consejos uso los Jedi por que en otro foro me los recomendaron supuestamente son para novatos por que te aorran algunas lineas de codigo la verdad fue pura curiosidad

me podrias explicar eso de los case o darme un ejemplo corto
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
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 01:42:26.


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