Filtros de bussqueda en FoxPro 9

Hola estoy elaborando un programa de inventario y reportes de
equipo de computo, pero quiero hacer una búsqueda o filtos de búsqueda, es decir
que el usuario meta el numero de inventario, o marca o modelo del
equipo o impresora y me salga el resultado de dicha búsqueda, para esto
obviamente esos registros ya estarán en la base de datos, ¿mi duda es
que código debe llevar para que me realice una búsqueda (tecleada por
el usuario) en la base de datos y me arroje los resultados en pantalla?
Espero me puedas ayudar

1 Respuesta

Respuesta
1
Algo que puedes hacer es colocar un control textbox donde vas a digitar lo que deseas buscar. Generalmente se hace en la parte superior de una grilla donde se visualizan los datos de la tabla.
En el evento lostfocus de este control puedes colocar un código similar al siguiente:
do case
     case thisform.nOrden = 1  && ej. codigo
             set filter to alltrim(codigo) = alltrim(this.value)
    case thisform.nOrden = 2  && ej. descripcion
            set filter to alltrim(descripcion) = alltrim(this.value)
    case thisform.nOrden = 3  && ej. modelo
            set filter to alltrim(modelo) = alltrim(this.value)
    Etc...
    Otherwise
           set filter to
Endcase
Esto te permitirá filtrar la información del campo seleccionado que comience por el valor contenido en el control de búsqueda. Es posible que desees buscar contenido no solo del comienzo sino de cualquier posición del campo, en ese caso reemplazas el set filter de la siguiente manera:
        set filter to alltrim(this.value) $ codigo  etc... en este caso si digitas 'Bro' podrias recibir referencias que empiecen o contenga Bro en el campo codigo.
Para ajustar el campo de búsqueda puedes en el evento clic de cada header de cada columna colocar un código como el siguiente:
Dodefault()
thisform.nOrden = 1  && en el clic del header del codigo.
dodefualt()
thisform.nOrden = 2 && en el clic del header del detalle, etc.
No olvides definir la propiedad nOrden en el formulario e iniciarla en cero.
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas