Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2008
eaguila7 eaguila7 is offline
Registrado
 
Registrado: oct 2008
Posts: 2
Poder: 0
eaguila7 Va por buen camino
Question Filtro

Hola!

quiero realizar un filtro de la tabla "busemple" cuando cambie el valor de un Edit1; el cual me regrese el valor de los campos: clave_empleado y nombre donde la clave_empleado contenga el valor del Edit1 y por ultimo muestre el resultado en un StringGrid.

Estoy realizando el siguiente codigo:

Código:
 
mod->busemple->Open();
 mod->busemple->Active = True;
 StringGrid1->Cells[0][0] = "CLAVE";
 StringGrid1->Cells[1][0] = "NOMBRE";
 mod->busemple->First();
 while(!(mod->busemple->Eof))
 {
  if(mod->busemple->FieldByName("CLAVE_EMPLEADO")->AsString == "%" + Edit1->Text + "%")
  {
   StringGrid1->Cells[0][x] = mod->busemple->FieldByName("CLAVE_EMPLEADO")->AsString;
   StringGrid1->Cells[1][x] = mod->busemple->FieldByName("NOMBRE")->AsString;
   x++;
  }
  mod->busemple->Next();
 }
 mod->busemple->Active = False;
 mod->busemple->Close();
pero no realiza lo que quiero

Espero y me puedan ayudar

Gracias
Responder Con Cita
  #2  
Antiguo 17-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Yo no se c++, bueno tampoco delphi, pero a ver que hago aqui.
Código:
 mod->busemple->Active = True;
 StringGrid1->Cells[0][0] = "CLAVE";
 StringGrid1->Cells[1][0] = "NOMBRE";
 {
  if(mod->busemple->FieldByName("CLAVE_EMPLEADO")->AsString == "%" + Edit1->Text + "%")
  {
   StringGrid1->Cells[0][x] = mod->busemple->FieldByName("CLAVE_EMPLEADO")->AsString;
   StringGrid1->Cells[1][x] = mod->busemple->FieldByName("NOMBRE")->AsString;
   x++;
  }
  
 }
Los parentesis no se como iran
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 17-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola. Los caracteres '%' sirven para hacer un filtro, pero desde SQL. En el codigo que estas poniendo te esta comparando exactamente la cadena '%VALOR%'. Tendrias, o bien hacer una busqueda con el 'where' en una sentencia select

Código Delphi [-]
query1->Active = False;
query1->SQL->Text = "select * from tabla where campo like " + QuotedStr("%" + Edit1->Text + "%");
query1->Active = True;

o bien, segun tu codigo actual, en vez de comparar, usar el Pos(...), que te busca una cadena dentro de otra. Saludos.
Responder Con Cita
  #4  
Antiguo 18-11-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Si quieres seguir haciéndolo como hasta ahora, solo cambia esto:
Código Delphi [-]
 if(mod->busemple->FieldByName("CLAVE_EMPLEADO")->AsString == "%" + Edit1->Text + "%")
  {
por... más o menos esto:
Código Delphi [-]
if pos(Edit1->Text->lowercase, mod->busemple->FieldByName("CLAVE_EMPLEADO")->AsString->lowercase) <> 0 then

Básicamente pasar a minúsuculas y usar la función Pos.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
No. de Registro y Filtro correcaminos2k2 Conexión con bases de datos 1 03-08-2006 09:54:01
Ayuda con filtro vhirginia Conexión con bases de datos 10 27-04-2004 21:48:20
Mal filtro vicrati Conexión con bases de datos 2 11-04-2004 19:36:51
Filtro manu Conexión con bases de datos 2 19-11-2003 15:36:57
Filtro y EOF javiermorales Conexión con bases de datos 2 07-10-2003 15:28:08


La franja horaria es GMT +2. Ahora son las 08:40:41.


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