Blog sobre programación en VFP, Actualizado por Jorge Mota en Guatemala ;)



Desarrollo & Ideas 09 de Noviembre del 2006 03:09 pm

Permitiendo navegar en las tablas al usuario…

Hace poco ví una pregunta en el news de Microsoft, sobre como poder dar la opción a un usuario para navegar “browse” para los amigos, a una tabla, pero en un grid, y que la forma sepa que campos debe usar, digamos para x Tabla, es decir, se le pide que muestre la forma Contactos, y que solo muestre los campos Nombre, Apellidos y Teléfono.

Algunos pensarán, ¿para qué? pues para que el usuario pueda examinar los registros en busca de duplicados, datos erróneos, etc. o cualquier otro uso.

Tenía una clase que permitía hacer eso, pero de una manera nada elegante, así que me decidí a afinarla un poco, así es como nace la clase GrdNav. Básicamente lo que nos permite es mostrar una forma, con las columnas que hayamos establecido antes (título y ancho), a lo mejor más adelante le agregue que permita ordenar, por el momento no lo permite.

Básicamente, el uso es así

oNav =Newobject("frm_grdnav","frm_grdnav.vcx")
lcFiltro = [Region = "]+Regiones.Region+["]
oNav.CargarTabla([Regiones],lcFiltro,[Ejemplo],[Ejemplo de Filtro])
oNav.Show()

Creamos el objeto, y ejecutamos su método “CargarTabla” y pasamos los siguientes parámetros:

  • Alias sobre el que se desea navegar.
  • Filtro que se quiere aplicar al cursor a mostrar (debe ser válido para select…. where).
  • Título de la ventana que se desea.
  • Mensaje a Desplegar en la etiqueta de la forma.

Una vez creado el objeto, podemos redimensionarlo, cambiarle colores, etc. Por código, antes de mostrarlo con el método show.

Una captura de la pantalla de ejemplo:

En la parte superior, los 2 primeros grids apuntan a los cursores “Contactos” y “Regiones”, al seleccionar el Botón “Navegar” que aparece sobre ellos, se creará el objeto y mostrará la ventana de navegación, no hace falta cerrarla, para poder navegar hacia otra, en el ejemplo se reutiliza la ventana. El tercer grid, muestra la tabla de configuración “DatosDef.dbf” (puede cambiar el nombre si usted. así lo desea), en ese grid puede cambiar que campos desea mostrar en la ventana de navegación (muestra los campos del cursor del grid que haya seleccionado de ultimo), y el ancho de las columnas, también los títulos para los campos.

Sí selecciona el check box que sobre el grid de configuración que dice “Filtrar Navegación al registro Seleccionado” al seleccionar el botón de navegación, solo verá el registro que se encuentre seleccionado en ese momento.

La ventana de navegación luce así:

Dentro de la ventana de navegación, el checkbox que dice “ajustar automáticamente”, usa autofit() del grid, si lo desmarca usará la configuración de la tabla para cada campo.

El código funciona con VFP 9, no he podido probarlo con VFP8 ni 7, lo único que haría falta quitar es el código que usa Try Catch, y las propiedades Anchor de la clase.

También se incluye la forma frm_conf, puede usarla en sus proyectos, para configurar el aspecto por cada tabla.

Quedan en el tintero un par de cosas más por agregar:

Búsqueda en la ventana de navegación, permitir ordenar por un campo.En cuanto tenga tiempo, lo implementaré y colgaré un video de como se ve en funcionamiento.

Siéntase libre de usar este código. Cualquier duda, simplemente comente acá.

Para descargarlo clic acá http://fox.desdeguate.com/descargas/vfp/grdnav.zip

Sí vives en México puedes tener un seguro de vida gratis por hasta 750,000 pesos y ganar dinero al mismo tiempo! clic acá para más información.

Una persona ha dicho algo en “Permitiendo navegar en las tablas al usuario…”

  1. on 07 Oct 2008 at 9:27 1.yuly viviana COLOMBIA dijo …

    quiero saber para qu me sirven las tablas de usuarios

Suscribete a los comentarios de este post

Vea también:

Deja un comentario, di algo


Quienes visitaron esto, vieron:

  • N/A