Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-09-2011
Avatar de cubanbaker
cubanbaker cubanbaker is offline
Miembro
NULL
 
Registrado: ago 2011
Ubicación: La Habana, Cuba
Posts: 65
Poder: 0
cubanbaker cantidad desconocida en este momento
Aqui esta el codigo. La Tabla la filtro por Sexo en un RadioGroup, asi el DBGrid se filtra segun se seleccione el sexo: Masculino o Femenino. Cuando está filtrada por Masculino y busco un articulo que es Femenino y existe en la Tabla, lo encuentra, pero como el DBGrid solo me esta mostrando los masculinos lo que hace es que el puntero se mueve al articulo masculino mas cercano. Asi hace cuando esta filtrada por Femenino, etc.
Código Delphi [-]
 
procedure TModifyRecurve.BtnBuscarClick(Sender: TObject);
begin
  if Radiogroup1.ItemIndex=0 then {Buscar por ArcherId}
    if DataModule1.TablaRecurvo.Locate('ArcherId',edit1.Text,[]) then
      DataModule1.TablaRecurvo.Locate('ArcherId',edit1.Text,[])
    else
      Showmessage('Archer not found. Check the Archer Id')
  else {Buscar por Apellidos}
    if DataModule1.TablaRecurvo.Locate('Apellidos',edit1.Text,[]) then
      DataModule1.TablaRecurvo.Locate('Apellidos',edit1.Text,[])
    else
      Showmessage('Archer not found. Check the Archer Last Name');
end;

Última edición por ecfisa fecha: 05-09-2011 a las 05:22:16. Razón: ETIQUETAS [DELPHI] [/DELPHI]
Responder Con Cita
  #2  
Antiguo 05-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
Cita:
Empezado por cubanbaker Ver Mensaje
Código Delphi [-]

procedure TModifyRecurve.BtnBuscarClick(Sender: TObject);
begin
if Radiogroup1.ItemIndex=0 then {Buscar por ArcherId}
if DataModule1.TablaRecurvo.Locate('ArcherId',edit1.Text,[]) then
DataModule1.TablaRecurvo.Locate('ArcherId',edit1.Text,[])
else
Showmessage('Archer not found. Check the Archer Id')
else {Buscar por Apellidos}
if DataModule1.TablaRecurvo.Locate('Apellidos',edit1.Text,[]) then
DataModule1.TablaRecurvo.Locate('Apellidos',edit1.Text,[])
else
Showmessage('Archer not found. Check the Archer Last Name');
end;
Como comentario adicional
si ya localizo lo que buscas ya no es necesario buscarlo nuevamente
Código Delphi [-]
 if DataModule1.TablaRecurvo.Locate('ArcherId',edit1.Text,[]) then

Se traduce en....
SI lo que escribi en el edit esta en la tabla en el campo ArcherId entonces....

ya lo encontraste.. ya no es necesatio

Código Delphi [-]
DataModule1.TablaRecurvo.Locate('ArcherId',edit1.Text,[])
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 05-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.

Tu observación es correcta oscarac , la línea es redundante ya que de encontrarlo vuelve a buscarlo.

Pero esa no es la raíz del problema, ya que si se hace:
Código Delphi [-]
  if ADOTable1.Locate('Campo', Edit2.Text,[]) then
  begin
    ADOTable1.Locate('Campo', Edit2.Text,[]);
    ShowMessage('Encontrado')
  end
  else
   ShowMessage('No encontrado');
O se hace:
Código Delphi [-]
 if ADOTable1.Locate('Campo', Edit2.Text,[]) then
    ShowMessage('Encontrado')
  else
   ShowMessage('No encontrado');
Y el dato a buscar existe en la tabla pero está excluido del conjunto de datos filtrados, en ambos casos mostrará el mensaje 'Encontrado', siendo que no debería hacerlo. Es decir que ignora el filtro en la busqueda.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 05-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
y dime cubanbaker, que tal si haces la busqueda por el codigo y por el sexo? sin necesidad de filtrar la tabla?

Código Delphi [-]
 
if Tabla.Locate('Empresa;KOD', VarArrayOf([_empresa, _Codigo]), []) then

has considerado esa forma?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 05-09-2011
Avatar de cubanbaker
cubanbaker cubanbaker is offline
Miembro
NULL
 
Registrado: ago 2011
Ubicación: La Habana, Cuba
Posts: 65
Poder: 0
cubanbaker cantidad desconocida en este momento
Si, tienen razon los dos, es redundante como me dicen, solo me di cuenta despues que habia escrito el codigo y despues no sabia como editar el mensaje para arreglarlo. No se pq escribi eso de esa forma, seria que el dia que lo hice tenia el tonto de guardia...no tengo que localizarlo 2 veces... de todas maneras, como dice ecfisa esa no es al raiz dle problema porque la busqueda se hace y el locate ignora el filtro. tendre que hacer como me dices y filtrar por una consulta SQL.
Oscarac, es necesario filtrar por sexo porque el usuario tiene que tener la posibilidad de solo "trabajar" con un sexo determinado pq en determinado momento solo necesitará visualizar los hombres o las mujeres (la base de datos tiene mas de 5000 articulos).
El Lookup tambien ignora el filtro... Eso pensé que seria un bug, pero estoy usando Delphi 2010. Muchas gracias, ya les diré que he hecho y como lo hice.! Saludos desde La Habana.
Responder Con Cita
  #6  
Antiguo 05-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
y probaste la opcion de buscar por el articulo y el sexo a la vez?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 05-09-2011
Avatar de cubanbaker
cubanbaker cubanbaker is offline
Miembro
NULL
 
Registrado: ago 2011
Ubicación: La Habana, Cuba
Posts: 65
Poder: 0
cubanbaker cantidad desconocida en este momento
Oscarac, la búsqueda por el código y por el sexo, sin filtrar la tabla, me funciona perfectamente, pero tengo necesidad de filtrarla, el usuario necesita solo ver los hombres o las mujeres en determinado momento y no todos mezclados. Ese es mi problema, que necesito filtrar la tabla y que el Locate no ignore el filtro. Gracias.[/font][/color]
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
Ayuda Lookup ComboBox Cristalero OOP 4 19-04-2009 16:49:03
ayuda con locate ercrizeporta Varios 2 21-08-2007 17:12:21
ayuda con LOCATE vivamotos C++ Builder 4 27-08-2006 04:40:46
Busqueda con Locate o Lookup noshy Conexión con bases de datos 7 15-05-2006 01:45:02
Locate en un campo lookup amadis Conexión con bases de datos 1 22-12-2005 21:46:52


La franja horaria es GMT +2. Ahora son las 11:09: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