Ver Mensaje Individual
  #2  
Antiguo 20-02-2008
mamaro mamaro is offline
Miembro
 
Registrado: mar 2004
Posts: 79
Reputación: 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