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 09-06-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 16
ivantj24 Va por buen camino
Caral Gracias por retomar el tema, y enserio que mala onda, que aun no se pueda, intente como me dices en el mensaje, solo quite los Active:=False; y Active:=True;. y no tampoco con eso se pudo ya no se que hacer enserio!!!! de plano al parecer no se puede hacer un filtro en delphi, con ADO numeriro y string??? muchas gracias por tomarse las molestias pero aun asi de plano no puedo aun
Responder Con Cita
  #2  
Antiguo 09-06-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Que base de datos usas?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 09-06-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 16
ivantj24 Va por buen camino
Sql Server 2005
Responder Con Cita
  #4  
Antiguo 09-06-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Que pena por que me hubiera gustado echarle un vistazo al programa para ayudar mejor.
Pregunto:
Por que si el filtro te esta dando tantos problemas por que no haces la consulta con un AdoQuery via sql, ademas sera mucho mas eficiente y rapida.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 09-06-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 16
ivantj24 Va por buen camino
Mira ahora mismo voy de salida ya del trabajo,e ste es un proyecto de la universidad que tengo que terminar en este mes :S:s y para todos los diferentes ventanas utilizo a fuerza buscar por el ID de usuario, ticket, departamento etc etc, entonces si no me queda de otra tendre que ver como hacerle pero con el ADOquery como dices, lo que pasa es que el Grid esta relacionado pero con el ADOTable entonces, si lo cambio a un ADOquery tendre, supongo no se mucho de Delphi, que si cambio a ADOquery, tendria que cambiar muchas cosas por que todo lo demas esta relacionado al ADOTable utilizo componentes DBEdits y cosas que estan relacionadas directamente al ADOtable, por eso es mi complicacion cambiarme por que tendria que cambiar algunas partes de codigo, ya ya voy a terminar, de todos modos muchas gracias enserio, y probare en casa a hacer una consulta, o sino esperare a ver si alguien tiene una idea, sino entonces empezare a hacer pruebas, gracias Caral
Responder Con Cita
  #6  
Antiguo 09-06-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Puedes usar un adoquery, presentar los datos en el dbgrid, enlazar el adotable etc., etc., etc, sin tener que hacer grandes cambios, es sencillo.
La consulta sql seria muy sencilla.
Saludos
PD: Si insistes en el filtro le entramos y lo resolvemos, todo tiene solucion.
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 09-06-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Vamos a resolver esto paso a paso:
1- Tienes que filtrar o un dato (interger) o un dato (string) en el mismo adotable.
2- Tratamos de usar OR pero se niega.
Entonces lo podemos atacar por otro lado, definiendo el filtro dependiendo de si es uno u otro:
Primero creamos una variable global, esta la colocamos publica:
Código Delphi [-]
 public
    { Public declarations }
   tipo: integer;
Esta variable nos servira para que guarde simplemente un numero.
Ahora nos colocaremos en el evento onKeyPress del edit (edtBuscar) que es el que da el dato al filtro.
En ese evento colocamos esto:
Código Delphi [-]
if (Key in ['0'..'9',#8]) then
  begin
  Tipo:= 1;
  end
  else
  Tipo:= 0;
Esto lo que hace es simplemente indicar si escribimos numeros o letras, de ser numeros el valor de Tipo sera 1 de lo contrario 0.
Bien ahora si hacemos el filtro:
Código Delphi [-]
procedure TfrmTicket.btnBuscarClick(Sender: TObject);
var
   Filtro : String;
begin
  ADOTableTicket.Filtered := False; // desconectamos el filtro

  if edtBuscar.Text <> '' then // si no esta vacío
  begin

  If Tipo = 1 then begin // si tipo es igual a 1 filtra por el tiquet (integer)
  Filtro := 'TicketID Like '+edtBuscar.Text;
  end;

  If Tipo = 0 then begin // si tipo es igual a 0 filtra por el usuario (string)
  Filtro := 'Usuario Like '''+ edtBuscar.Text + '*''';
  end;

  ADOTableTicket.Filter := Filtro; // obtiene el filtro
  ADOTableTicket.Filtered := True // lo Filtro

  End;
end;
Bien, creo que es un codigo mas claro.
Primero definimos si queremos filtrar por numeros o letras.
Segundo con el valor generado en la variable hacemos o un filtro u otro.
Espero que si no te sirve por lo menos ayas aprendido algo mas, aunque sea sencillo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 09-06-2011
Avatar de oesqueda
oesqueda oesqueda is offline
Miembro
 
Registrado: dic 2007
Ubicación: Guadalajara, Mexico
Posts: 66
Poder: 19
oesqueda Va por buen camino
Perdon por no poner el codigo marcado como codigo, son mis primeros mensajes .

En serio mejor haz consulta con parametros.

En el componente ADO en el commandtext (SQL):
Código SQL [-]
select *
from TABLA
where TicketID LIKE :Tiq or Usuario LIKE :usu
order by LOQUESEA

Y en el codigo (usa ADODATASET en vez de ADOTABLE):
Código Delphi [-]
      with ADOTableTicket do  begin
        Close;
        Parameters.ParamByName('Tiq').Value := TIQ;
        Parameters.ParamByName('USU').Value := Format('*%s*', [usu]);
        Open;
      end; {with}

Quitas el autofilter, ese usalo poco es mejor hacer consultas SQL.
Usando el TADODataset, pones la sentencia SQL dento de commandtext y solo debes cerrar cambiar parametros y volver a abrir, te recomiendo pongas indices en las columnas que usas para las consultas (where) y el ordenamiento (order by).

Asi tu codigo de se redujo y encapsulas codigo donde debe ir.

Saludos
__________________
OEsqueda
Responder Con Cita
  #9  
Antiguo 09-06-2011
Avatar de oesqueda
oesqueda oesqueda is offline
Miembro
 
Registrado: dic 2007
Ubicación: Guadalajara, Mexico
Posts: 66
Poder: 19
oesqueda Va por buen camino
No quiero equivocarme pero el like no deberia usarse en un campo numerico asi
Corrijanme por favor
__________________
OEsqueda
Responder Con Cita
  #10  
Antiguo 09-06-2011
ivantj24 ivantj24 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 110
Poder: 16
ivantj24 Va por buen camino
Gracias Oesqueda, por la ayuda, y no lo he probado pero en el trabajo ya estoy fuera de tiempo para entregar el proyecto, me dijeron que asi lo dejara (con busquedas por string unicamente) pero personalmente no me siento bien, ya que en un futuro se que volvera a presentarse esto, de todos modos me dijeron que si fuera a hacer algo seria con ADOTable por Filtro, les agradesco a todos la ayuda, pero por el momento asi me quedare ya, y en mi tiempo libre buscare la solucion pro el momento no quiero detenerme aqui por que aun me faltan otros detalles mas, y no me quiero complicar de mas, saludos a todos y muchas gracias por la ayuda.
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
Como calcular el resto de dividir un string numerico veronica Varios 3 26-09-2005 13:35:18
Ayuda por favor... Urge..!! manuel Suarez MS SQL Server 2 22-07-2005 23:15:27
Relacion campo numérico vs campo string JorgeBec Varios 1 11-04-2005 18:26:51
Me Urge Un Programador ADRIAN_2004 API de Windows 1 27-10-2004 19:38:51
urge. apagar windows XP mrmanuel API de Windows 3 06-09-2003 05:09:24


La franja horaria es GMT +2. Ahora son las 20:35:23.


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