Documente Academic
Documente Profesional
Documente Cultură
Posted By admin On Marzo 22, 2008 @ 2:20 pm In FoxPro Controles, FoxPro General | 1 Comment
En el nuevo proyecto que estoy trabajando, tengo la necesidad de presentar la cierta información a
manera de una carpeta con pestañas de colores. A mi mente acudió la imagen de una agenda, como la
que maneja Lotus Organizer.
Un poco mas sencillo verdad? Pero funciona y 100% VFP, aquí utilice solamente el control
PAGEFRAME, LIST, SHAPE y listo. La emulación es bastante buena.
Al iniciar el control y dar un clic en la pestana de la A, nos muestra del lado izquierdo los datos de los
clientes, opcionalmente se le pasa un parámetro para ver si muestra o no los teléfonos.
Cuando se da un clic en la siguiente pestana, vemos que se “abre” poniendo del lado derecho la letra
anterior seleccionada, y conforme pasamos las letras, estas se van actualizando, dando la sensación de
que se “pasan” las hojas, hasta llegar al final.
Los colores, identifican cada letra (si no les gustan los pueden cambiar, ya que simplemente fui
seleccionándolos conforme esta la paleta de colores).
Se creo un cuadro y círculos para dar la sensación de “anillos”. Además puede agregar nuevos datos,
borrar o editar, pulsando con el botón derecho del ratón.
Lógicamente, estas formas deberán adaptarse a su sistema, como mas les convenga.
El cambio de color para los teléfonos, simplemente es el color del elemento desactivado y lo agregamos
a lista anteponiendo un ‘\’, al inicio. Así, queda el nombre del cliente (activo) con un color y el teléfono
(desactivado) con otro color.
Si no se desean ver los teléfonos, hay una variable dentro del código para ocultarlo y que quede así:
Esto ya es decisión de cada uno. El código es por demás sencillo.
En primer lugar tenemos que tener nuestra tabla a trabajar, que puede estar en el DATAENVIROMENT
de esta forma o abrirla anterior o posteriormente en el INIT.
Básicamente todo esta en el evento CLICK del PAGEFRAME junto con 2 procedimientos.
ln = this.ActivePage
* Ver la 1er hoja
thisform.pageframe2.Visible = .T.
thisform.list2.Visible = .T.
DO CASE
CASE ln = 1
thisform.pageframe2.Visible = .F.
thisform.list2.Visible = .f.
lcLetra = 'A'
lcLetraBack = ' '
CASE ln = 2
lcLetra = 'B'
lcLetraBack = 'A'
thisform.pageframe2.page1.ZOrder
CASE ln = 3
lcLetra = 'C'
lcLetraBack = 'B'
thisform.pageframe2.page2.ZOrder
CASE ln = 4
lcLetra = 'D'
lcLetraBack = 'C'
thisform.pageframe2.page3.ZOrder
CASE ln = 26
lcLetra = 'Z'
lcLetraBack = 'Y'
thisform.pageframe2.page25.ZOrder
CASE ln = 27
lcLetra = ' '
lcLetraBack = 'Z'
thisform.pageframe2.page26.ZOrder
ENDCASE
* Mostrar la info
* Formato:
* cLetra = Letra inicial a desplegar
* cTabla = Nombre de la tabla a usar (que este abierta)
* cCampo = Nombre del campo a desplegar
* cTelShow = .T. si se desea desplegar el teléfono, .F. si no
* cCampTel = Nombre del campo telefónico a desplegar
*
thisform.ShowData( lcLetra, 'clientes_pfm', 'cliente', .F., 'telefonos' )
thisform.ShowData2( lcLetraBack, 'clientes_pfm', 'cliente', .F., 'telefonos' )
Y es todo. Se crea un menú tipo shorcut, con las opciones deseadas, y en el método RIGHCLICK de la
caja de lista, se pone: