Club Delphi  
    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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-02-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
ayuda con listas de autoyenado

Hola que tal? Les escribo para pedirles su ayuda en algo que espero me explique: Estoy haciendo una aplicacion donde se van a almacenar informacion, ahora me interesan los campos Region, Municipio y Localidad. Tengo dos sugerencias de llenado de estos campos:
1. Usar listas o combo box, por ejemplo, en Region solo iran 6 regiones (6 items en la lista) pero cuando yo elija una region, el siguiente campo de Municipios debe llenarse con la lista de municipios de SOLO ESA REGION para que yo despues elija uno de ellos y cuando elija un muncipio el tercer campo de Localidades se debe llenar con las localidades de dicho municipio y asi poder elegir un municipio. Esto es tipico en los formularios de llenado de informacion personal en paginas de internet, donde pones tu pais, despues aparecen los estados de tu pais, despues eliges tu provincia, No se si me explique????

2. La segunda sugerencia es mas complicada y mucho mas vistosa. Es como la busqueda de un archivo en el winamp, donde pulsas la tecla '.'(punto) y aparece un textbox, y conforme vayas escribiendo aparecen resultados.

En ambas sugerencias, si el dato que se busca no Existe, adicionarlo mediante un text box o algo asi.
Espero me ayuden, gracias!!!!!
Responder Con Cita
  #2  
Antiguo 20-02-2008
mamaro mamaro is offline
Miembro
 
Registrado: mar 2004
Posts: 79
Poder: 21
mamaro Va por buen camino
Hola

Para la primera lo que necesitas es un maestro detalle, tal vez te sirva este link http://www.clubdelphi.com/foros/showthread.php?t=53416.

Para la segunda me parece que lo que necesitas es implementar una búsqueda incremental (lo cual es un poco más complicado)

1) Pones en un formulario un edit y un dbgrid.

2) Pones el componente de conexión y un consulta (una query) y en la sentencia SQL ponés:
Código SQL [-]
Select *
from Articulos
where (upper(desc_articulo) like upper(:buscar))
Los dos Upper sirven para que cuando el usuario escriba se haga una comprobación insensible a mayúsculas (no se si es tu caso).

3) Ponés un DatSource y lo atás con la query y con el DBGrid.

4) En el evento OnKeyPress del edit ponés:
Código Delphi [-]
  if Length(ed1.Text)>2 then
  begin
    q1.Close;
    q1.ParamByName('buscar').AsString:=ed1.Text+'%';
    q1.Open;
  end;
En este caso la consulta se abre recién a la tercera letra pulsada.
Esto se podría pulir un poco así:
Código Delphi [-]
  if Length(ed1.Text)>2 then
  begin
    q1.Close;
    q1.ParamByName('buscar').AsString:=ed1.Text+'%';
    q1.Open;
    if q1.recordcount=0 then
    begin
      // habilito un botón para ingresar una nueva localidad por ejemplo
    end
  end;
Con esta modificación podés hacer alguna acción cuando no encontrás lo que el usuario busca.

Saludos y espero te sirva.
Responder Con Cita
  #3  
Antiguo 21-02-2008
metroyd metroyd is offline
Miembro
 
Registrado: oct 2007
Posts: 78
Poder: 17
metroyd Va por buen camino
Cita:
Empezado por mamaro Ver Mensaje
Para la primera lo que necesitas es un maestro detalle, tal vez te sirva este link http://www.clubdelphi.com/foros/showthread.php?t=53416.

Para la segunda me parece que lo que necesitas es implementar una búsqueda incremental (lo cual es un poco más complicado)

1) Pones en un formulario un edit y un dbgrid.

2) Pones el componente de conexión y un consulta (una query) y en la sentencia SQL ponés:
Código SQL [-]Select *
from Articulos
where (upper(desc_articulo) like upper(:buscar))

Los dos Upper sirven para que cuando el usuario escriba se haga una comprobación insensible a mayúsculas (no se si es tu caso).

3) Ponés un DatSource y lo atás con la query y con el DBGrid.

4) En el evento OnKeyPress del edit ponés:
Código Delphi [-] if Length(ed1.Text)>2 then begin q1.Close; q1.ParamByName('buscar').AsString:=ed1.Text+'%';
q1.Open;
end;

En este caso la consulta se abre recién a la tercera letra pulsada.
Esto se podría pulir un poco así:
Código Delphi [-] if Length(ed1.Text)>2 then begin q1.Close; q1.ParamByName('buscar').AsString:=ed1.Text+'%';
q1.Open;
if q1.recordcount=0 then begin // habilito un botón para ingresar una nueva localidad por ejemplo
end end;

Con esta modificación podés hacer alguna acción cuando no encontrás lo que el usuario busca.

Saludos y espero te sirva.
Hola gracias por tu respuesta, tratare de analizarla y lo implementaré. Cualquier duda te echo un grito!! Gracias nuevamente
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
Manejo de Multi-Listas (listas de listas) DelphiRat OOP 4 03-07-2006 19:42:58
Ayuda Listas zezeno OOP 1 25-04-2006 21:07:02
Listas ligadas Luli Varios 1 30-05-2005 10:04:26
Ayuda con la impresion de unas listas tiagor64 Impresión 0 03-02-2005 19:27:08


La franja horaria es GMT +2. Ahora son las 22:28:23.


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