martes, 21 de junio de 2011

menu mantenimiento

Ideal para el mantenimiento de tablas maestras

ventana de mantenimiento (w_fbs001_usuario)

Es ideal para el mantenimiento de ventana maestras

Creando w_inicio nuestra ventana principal

Creando w_frame_ancst como plantilla




Nuestra ventana w_inicio nos va servir como main() de nuestro formulario. 

heredamos de nuestro objeto ventana w_frame_ancst y lo guardamos como w_inicio.


Anexando nuestro menu m_frame_ancst a nuestra ventana w_inicio,
el m_frame_ancst se definio en la sesion anterior.


Anexando la aplicación el siguiente codigo :



El evento Open el siguiente codigo open(w_inicio)

lunes, 20 de junio de 2011

Creamos w_dw heredado de w_frame

Esta ventana lo heredamos de w_frame y lo guardamos con el siguiente w_dw .

w_dw heredado de w_frame
Haciendo un grafico podemos observar que nuestra ventana presenta 2 niveles de herencia.

Jalamos y pegamos el objeto datawindows (u_dw) en la ventana w_dw ya creada.


Si revisamos la propiedades del objeto ventana w_dw, nos visualiza las propiedades del dw_1 ha sido heredado ancestor (u_dw).

dw_1 herencia u_dw

Revisando el script del objeto control dw_1

w_dw script

Este objeto dw_1 ha heredado todos los eventos de u_dw.

jueves, 16 de junio de 2011

Botones de Mantenimiento de Menu

Manteniendo la estructura de nuestra interfaces desde un inicio, hacemos un descripción y funcion de los distintos botones de Menu.

Descripción de los botones de mantenimiento :

Buscar :

Buscar Registro

Nos permite hacer una busqueda de los registros en la base de datos.

Nuevo :
Nuevo Registro
Crea un nuevo registro y abre los campos de la ventana actual para el ingreso de datos.

Eliminar:
Eliminar Registro
Eliminar de la base de datos el registro seleccionado por el usuario.

Modificar :
Modificar Registro
Modifica el registro de una ventana activa, los datos      modificables pueden ser nombres, descripciones, fechas, códigos.

Anular :

Anular Registro
Anular los registros.

Guardar :
Guardar Registro
Graba los nuevos registros  o las modificaciones hechas a      los registros.

Imprimir :
 
Imprime los registros, documentos ingresados al módulo, el usuario puede escoger la impresora destino y esta
opción es configurable de acuerdo al requerimiento del usuario

Cerrar :
Cerrar Ventana
Cerrar la ventana del módulo que se encuentra abierta.

Salir :
Salir del Sistema

Salir del Sistema.



miércoles, 15 de junio de 2011

Creando nuestro menu - m_frame_ancst

Aplicaciones MDI - El objeto Menú :

Intercambio de múltiples documentos (MDI) es un estilo de aplicación en la que los usuarios pueden abrir múltiples ventanas de documentos (hojas) en una sola ventana (la ventana de marco MDI) y moverse entre las hojas. Las hojas son generalmente del mismo tipo y tienen características comunes o usos.


Insertando MenuItem y Sub Item al objeto menu m_frame_ancst
modificando sus propiedades ToolbarItem, agregando iconos como
Text = '&Buscar'
MicroHelp = 'Abrir Lista para Buscar'
ToolbarItemText = 'Buscar Registro'
ToolbarItemName = 'custom050!'



Ademas esto tambien se puede hacer por codigo power script.


Desglozando mas la vista :




Trabajando con el menu Archivo \ Registro \ Buscar :

Dandole click asi como :



y Empesamos a ingregar el siguiente codigo en el script :



NOTA.- PostEvent, al invocar la ventana hija lee el evento de la ventana hija ue_buscar y lo va ejecutar el codigo que pongamos. para es necesario que la ventana tenga este evento de usuario ue_buscar para poder programarlo.

SetMicroHelp, nos visualiza en la parte inferior del menu un mensaje definido por nosotros en este caso sera Buscar Registro...

Trabajando con el menu Archivo \ Registro \ Nuevo :


y Empesamos a ingregar el siguiente codigo en el script :



Asi sucesivamente hasta llegar a la ruta  

Trabajando con el menu Archivo \ Registro \ Salir :



y Empesamos a ingregar el siguiente codigo en el script :


NOTA.- El evento Close , Cerrar la ventana Principal o cerrar el Sistema.


Agregando la w_calculadora en el menu Ayuda sub item Calculadora
del menu m_frame_ancst .


y Empesamos a ingregar el siguiente codigo en el script :

Este codigo nos permite Abrir la ventana en el marco del menu
Opensheet(w_calculadora, Parentwindow,0,Original!).
mas detalle del openSheet lo puedes encontrar en la ayuda del PB.

Dando una vista previa a nuestro menu m_frame_ancst :





Hemos aprendido a abrir una ventana como hija dentro del menu OpenSheed y ademas programar en el menu con el evento clicked().

miércoles, 8 de junio de 2011

Creando nuestra ventana w_frame - Heredado de w_base

Vamos aplicar la herencia con PB, nos ubicamos en w_base y damos click en Inherit


* Grabamos la ventana heredada de w_base con el siguiente nombre  w_frame :



Como nos damo cuenta si una ventana ha sido heredada de otra ?
El encabezado de cada ventana abierta nos dice si ha sido heredada.



Tambien la parte del codigo de la ventana padre se diferencia por otro color (w_base).


Agregando los eventos de usuario comunes que luego enlazaremos con cualquier menu.

ue_nuevo      (Nuevo Registro)
ue_buscar     (Buscar Registro)
ue_eliminar   (eliminar Registro)





ue_guardar    (Guardar Registro)
ue_imprimir   (Imprimir )
ue_anular     (Anular Registro)

martes, 7 de junio de 2011

Creando nuestra ventana base - w_base

Para Agregar funciones nos ubicamos en la Pestaña Function List.

Creamos la una ventana y lo grabamos con el nombre w_base


Le agregamos dos Funciones a la ventana w_base

of_posicion :
Esta funcion nos ubica la ventana donde nosotros queremos que aparesca.


of_centrar :
Centrar la ventana y enviando las cordenas a la funcion of_posicion.


lunes, 6 de junio de 2011

DataWindow - Standard Visual Parte III

dw_enter :

Los usuarios insistan en usar la tecla Enter para moverse de campo a campo en la Datawindow.

Normalmente los usuarios piden esta característica porque esta es la tecla que usan habitualmente o porque la posición de la tecla Enter es más cómoda que la tecla de tabulación.


Declaramos un evento mapeado a pbm_dwnprocessenter




Añadimos el siguiente código:
Send( Handle(this),256,9,Long(0,0))
Return 1

dw_key :

El datawindow te responda a cualquier tecla del teclado y programarlo para que obedesca cuando presiones la tecla Enter, la tecla Suprimir, la tecla F1, etc..

Declaramos un evento mapeado a pbm_dwnkey


LoseFocus() :

Este Evento es propio del control, cuando pierda el enfoque le decimos que reestablesca los datos.







miércoles, 1 de junio de 2011

DataWindow - Standard Visual Parte II

Abriendo el objeto u_dw creado (Standard Visual DataWindow Ancestro) para comenzar agregar eventos de usuario.


Agregar User Event dentro de u_dw (Standard Visual DataWindow Ancestro)

Nos Ubicamos en la pestaña Event List para comenzar ingresar  User Event ó Eventos de Usuario.


Nos saldra una pantalla asi como esta :


Damos click derecho nos saldra un menu contextual de Add

Agregamos los Eventos de Usuario ue_nuevo, ue_eliminar, ue_recuperar, ue_guardar, ue_anular, ue_imprimir, ue_ordenar, ue_guardarcomo, ue_filtrar, ue_nuevo_siguiente, ue_eliminar_siguiente.

ue_ordenar : Lo utilizaremos cuando queremos ordenar los encabezados del datawindows


ue_filtrar : Lo utilizaremos cuando queremos filtrar la informacion del datawindows.




ue_nuevo_siguiente : Lo utilizaremos como si fuera un evento siguiente al evento ue_nuevo, este evento se crea primero por que parte del codigo del evento ue_nuevo lo esta referenciando y no lo podemos nada de codigo por que eso lo vamos a utilizar cuando ya heredamos.
Este evento para se pueda ejecutar tienes que mandarle un parametro al_row tipo LONG




ue_nuevo : Lo utilizaremos cuando queremos agregar nueva fila al datawindows, ademas este evento devuelve un parametro de retorno tipo LONG.




ue_eliminar_siguiente : Lo utilizaremos como si fuera un evento siguiente al evento ue_eliminar, este evento se crea primero por que parte del codigo del evento ue_eliminar lo esta referenciando.
No utilizaremos ningun parametro de retorno.




ue_eliminar : Lo utilizaremos cuando queremos eliminar una fila al datawindows, ademas este evento devuelve un parametro de retorno tipo LONG.



Quedaria de esta manera nuestro eventos Event List pintados de  un color amarillo y en la parte superior los ubica:


Y los eventos que tan solo se crearon y no se codificaron la herramienta PB los visualiza pintados de  un color negro y en la parte inferior los ubica.


Toda Nuestra Libreria quedaria asi de esta manera :