Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Como consultar informaciòn de una tabla con una tecla de funcion (https://www.clubdelphi.com/foros/showthread.php?t=30780)

maravert 19-04-2006 04:41:47

Como consultar informaciòn de una tabla con una tecla de funcion
 
Hola a todos:

Me gustaria que alguien me pudiera dar una idea, ya que no sè ni por donde entrarle.

Tengo una tabla de clientes en paradox clientes.db y otra de articulos articulos.db

Necesito hacer un programa para que cuando el usuario tome los pedidos de los clientes busque un cliente al poner su clave lo localice y si el quiere por su nombre, o por su apellido buscar con uan tecla de funcion pueda, por ejemplo si un cleinte se apellifa RODRIGUEZ y el Usuario al teclar RODRIGUEZ apaezcan todos los clilentes que se llamen "RODRIGUEZ" y de alli seleccionar al que busca y seGuir con el procedimient, lo msimo con articulos, pero si me ayudan con uno el otro es parecido.

Les pido me den un empujòn y luego me voy solo.

Gracias de antemano

Alemar

Sotrono 19-04-2006 05:09:25

Hola, No entiendo como lo queres hacer, a que te referis con lo de tecla de función??. Te digo como lo haría yo:
Pondría un TEdit el cual va a contener la cadena a buscar. Cada vez que se modifique el contenido del mismo se van a mostrar todos los registros de la BD que contengan la palabra del Edit:

En el evento OnChange de TEdit pone esto:
Código Delphi [-]
procedure TfrmPrincipal.EBusquedaChange(Sender: TObject);
begin
  with Query1 do begin
    Close;
    if EBusqueda.Text = '' then
      SQL.Text := 'SELECT * FROM Clientes'
    else begin
      SQL.Text:= 'SELECT * FROM Clientes WHERE UPPER(Nombre) LIKE (UPPER(:Nombre))';
      ParamByName('Nombre').Value := '%' + EBusqueda.Text + '%';
    end;
    Open;
  end;
end;

Si lo que queres es permitir que la busqueda se haga por el campo nombre o por el de codigou otro, podes poner un RadioButton por cada Campo por el que queres que se pueda realizar la busqueda y agregar una rutina en el evento OnChange del TEdit que chequee qué RadioButton es el que esta checkeado.

Bytes..

Zeta 19-04-2006 05:52:14

a ver si entendí

cuando quiero buscar una persona por ejemplo presiono F3 y aparece o una pantallita con la búsqueda o hago foco en un textbox para la búsqueda

Tenés que poner en el evento keydown del formulario:
Código:

procedure TfrmMiFormulario.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key = VK_ESCAPE) then Close;//Ejemplo: cierro el form;
  if (Key = VK_F1) then ...;//Ejemplo: abro la ayuda;
  if (Key = VK_F3) then ...;// Ejemplo: abro la búsqueda;
end;

Y poner la propiedad del form "Key Preview" a "TRUE" para que funcione cuando se aprete una tecla

Para otras teclas buscá la ayuda sobre las "Virtual key codes"

Esto es por lo de las teclas, lo demás es trabajar sobre la base de datos con búsquedas, que creo que algo te contestó Sotrono (no lo leí completo, ni analizé)

Saludos

Lepe 19-04-2006 12:40:48

Una forma de "ordenar" esas cosas es mediante un TActionList, a cada uno de los Taction le asignas una tecla Rápida, (puede ser una tecla de función o una combinación de teclas), despues asignas el Action a cada botón por separado.

Un Taction es simplemente un procedure que se ejecuta, bien cuando hace clic en un botón que está enlazado, o bien cuando se pulsa su tecla rápida (ShortCut)

El cliente escribe "rodriguez" en la ventana de pedidos y pulsa F3, en esa ventana tienes un Taction que al pulsar F3:

Crea la ventana de búsqueda en forma Modal (frmbusqueda.ShowModal), permite escribir el nombre, apellido, etc, se hace la búsqueda y muestra los resultados; el usuario hace clic en un resultado y pulsa Intro. La ventana devuelve el código del cliente y se cierra.

Como la ventana se mostró de forma modal, la ventana de pedidos se queda esperando justo en el mismo punto que llamaba a frmbusqueda.ShowModal, ahora recoges el código que ha devuelto frmBusqueda y rellenas la caja de texto en la ventana de pedidos.

Más o menos es la lógica.

Saludos

maravert 20-04-2006 02:28:42

Gracias
 
Muchas gracias a todos por responderme, voy a probar y a empezar con el programa, gracias, nunca dejare de formar parte de este foro, enhorabuena por los creadores.

Alemar


La franja horaria es GMT +2. Ahora son las 08:53:18.

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