Utilizamos ventanas en nuestro diseño de pantallas para facilitar el acceso a la información. Sin embargo, con mucha frecuencia sucede que la ventana que programamos, oculta información de la pantalla anterior, que es de utilidad para el usuario. En este caso, el usuario tendría que realizar estos pasos:
1.-Salir de la ventana
2.-Registrar o escribir el dato que necesita tener a mano.
3.-Ingresar nuevamente a la ventana.
Veamos el siguiente ejemplo.
Podemos apreciar que la ventana oculta el costo unitario del producto y la fábrica donde es utilizado. Esta información puede ser muy valiosa para tomar decisiones antes de continuar navegando en la aplicación.
El usuario puede escribir o memorizar información clave rápidamente pero consume tiempo y esfuerzo y no contribuye a agilizar su trabajo.
Programar ventanas moviles quita tiempo, pero a la larga favorecemos la dinámica diaria del negocio y las tareas del usuario, quien al fin y al cabo, es el consumidor de nuestro desarrollo y nuestro principal evaluador.
Programar ventanas moviles requiere:
1.-Declarar en los parametros de Star Line de la pantalla dos variables de fila y columna (ROW, COL)
Lo siguiente que necesitamos es incorporar en el diseño de pantalla las siguientes palabras claves:
1.-MOUBTN(*ULP CA12)
Esta palabra clave indica al sistema que vamos a utilizar el mouse (ratón) en el archivo de pantalla y que:
A.-Vamos a utilizar el boton Izquierdo del mouse (*ULP) Esto significa, presionar botón izquierdo sin desplazamiento (sin drag and drop)
B.- Cuando el usuario haga click con el boton izquierdo del mouse, se va a encender el indicador asociado.
En el ejemplo coloqué CA12 pero puede ser cualquier funcion y cualquier indicador que elijan. Supongamos que elegimos CA12 y lo asociamos con el indicador 12.
2.-RTNCSRLOC(*MOUSE &ROWMOUSE1 &COLMOUSE1)
Esta palabra clave indica al sistema que nos devuelva las coordenadas de la ubicación del cursor en pantalla, expresadas en fila y columna en estos parámetros: &Rowmouse1 y &Colmouse1 repectivamente.
(Nota: recordar que las variables Row, Col, Rowmouse1 y Colmouse1, deben ser declaradas de tres posiciones numéricas y de tipo "H" (ocultas)).
Cuando el usuario haga click en cualquier posicion de la pantalla se enciende el indicador 12. En el progama RPG preguntamos si el indicador 12 esta encendido. Si es asi, debemos igualar las variables ROW y COL que defininimos para la ventana con las variables &ROWMOUSE1 &COLMOUSE1 que indican la posicion del cursor.
En el código del programa colocaríamos:
If Click (in12)
ROW = RowMouse1
COL = ColMouse1
Endif
Para sacar la ventana de esa posicion que resulta incómoda, es suficiente que el usuario haga click en el lugar de la pantalla donde desea relocalizar la ventana.
Por ultimo queda monitorear el error de dispositivo que puede dar cuando la ubicacion elegida por el usuario no hace posible relocalizar la ventana en ese sitio. En el ejemplo que tenemos en la pantalla, quiere relocalizar la ventana haciendo click en el borde inferior de la pantalla. Obviamente la ventana movil no puede desplegarse allí porque justo allí termina el espacio disponible para mover la ventana. Entonces en este caso se monitorea con MONITOR el mensaje de error y por programa, movemos la ventana a una fila y columna que elegimos por defecto cuando se presenten situaciones como esta.
Puedes descargar el código fuente en este enlace:
Codigo Fuente Ventanas Moviles
No comments:
Post a Comment