|
 |
 |
5.- Progr. Controles (I)
página(s) : 1/2 (4538 palabras totales en este texto) (21307 Lecturas) 
En el capítulo anterior vimos la programación
de las rutinas ahora es el momento de ver como se programan
los eventos de los controles que tenemos en nuestra
pantalla.
Una de las grandes diferencias que al menos yo he encontrado,
es que cuando se programa de manera tradicional, vas
teniendo el control de cada campo por separado, ahora
en cambio el usuario con el ratón se puede ir
a cualquier campo y dejar otros en blanco. Para evitar
un poco el descontrol, he optado por lo siguiente. Nuestro
primer campo a pedir es el código y por lo tanto
una vez nos situemos sobre el siempre vamos a deshabilitar
todos los demás campos y dejarlos sin contenido,
así el usuario estará obligado a entrar
un código antes de hacer nada, además
aprovechamos y colocamos el número siguiente
de código libre, veamos su programación:
Control: AGE-COD Evento : EDIT
|
Programación
|
ENVIRONMENT
DIVISION. DATA
DIVISION. WORKING-STORAGE
SECTION. 01
SIGUE PIC 9999. PROCEDURE
DIVISION. MOVE
SPACES TO POW-TEXT OF AGE-NOM MOVE
SPACES TO POW-TEXT OF AGE-DOM MOVE
SPACES TO POW-TEXT OF AGE-POB MOVE
0 TO
POW-NUMERIC OF AGE-POS MOVE
SPACES TO POW-TEXT OF AGE-PRO MOVE
SPACES TO POW-TEXT OF AGE-MOV MOVE
SPACES TO POW-TEXT OF AGE-TEL MOVE
SPACES TO POW-TEXT OF AGE-MAI MOVE
SPACES TO POW-TEXT OF AGE-WEB
MOVE
0 TO POW-ENABLE OF AGE-NOM MOVE
0 TO POW-ENABLE OF AGE-DOM MOVE
0 TO POW-ENABLE OF AGE-POB MOVE
0 TO POW-ENABLE OF AGE-POS MOVE
0 TO POW-ENABLE OF AGE-PRO MOVE
0 TO POW-ENABLE OF AGE-GEH MOVE
0 TO POW-ENABLE OF AGE-GEM MOVE
0 TO POW-ENABLE OF AGE-TIP MOVE
0 TO POW-ENABLE OF AGE-MOV MOVE
0 TO POW-ENABLE OF AGE-TEL MOVE
0 TO POW-ENABLE OF AGE-MAI MOVE
0 TO POW-ENABLE OF AGE-WEB MOVE
0 TO POW-ENABLE OF GRABAR MOVE
0 TO POW-ENABLE OF L-GRABAR MOVE
0 TO POW-ENABLE OF BORRAR MOVE
0 TO POW-ENABLE OF L-BORRAR MOVE
0 TO POW-ENABLE OF LISTAR MOVE
0 TO POW-ENABLE OF L-LISTAR MOVE
0 TO POW-ENABLE OF EMAIL MOVE
0 TO POW-ENABLE OF L-EMAIL MOVE
0 TO POW-ENABLE OF CANCELAR MOVE
0 TO POW-ENABLE OF L-CANCELAR
COMPUTE
SIGUE = TOPE + 1 MOVE
SIGUE TO POW-NUMERIC OF AGE-COD.
|
Ahora, una vez pulsado Return sobre el código introducido
generamos otro evento en el que se comprueba si existe
o no y dependiendo se realizará una función
u otra. Si existe el código llamamos a la rutina
existe, que se encarga de colocarnos todos los contenidos
de los campos y podremos, modificarlos, borrar, regrabar,
etc .... En caso de no existir pone de nuevo los demás
campos habilitados y nos envía al siguiente que
en este caso es AGE-NOM. Veamos su programación:
Control: AGE-COD Evento : RETURN
|
Programación
|
ENVIRONMENT
DIVISION. DATA
DIVISION. PROCEDURE
DIVISION. MOVE
POW-NUMERIC OF AGE-COD TO AGECOD IF
AGECOD = 0 GO DOS END-IF READ
AGENDA INVALID KEY GO TRES NOT
INVALID KEY CALL "EXISTE" END-READ CALL
"PONCCC" EXIT
PROGRAM.
DOS. CALL
SETFOCUS OF AGE-COD EXIT
PROGRAM.
TRES. MOVE
1 TO POW-ENABLE OF AGE-NOM MOVE
1 TO POW-ENABLE OF AGE-DOM MOVE
1 TO POW-ENABLE OF AGE-POB MOVE
1 TO POW-ENABLE OF AGE-POS MOVE
1 TO POW-ENABLE OF AGE-PRO MOVE
1 TO POW-ENABLE OF AGE-GEH MOVE
1 TO POW-ENABLE OF AGE-GEM MOVE
1 TO POW-ENABLE OF AGE-TIP MOVE
1 TO POW-ENABLE OF AGE-MOV MOVE
1 TO POW-ENABLE OF AGE-TEL MOVE
1 TO POW-ENABLE OF AGE-MAI MOVE
1 TO POW-ENABLE OF AGE-WEB MOVE
1 TO POW-SELECT OF AGE-TIP INITIALIZE
REGAGE MOVE
POW-NUMERIC OF AGE-COD TO AGECOD CALL
SETFOCUS OF AGE-NOM MOVE
"Grabar" TO POW-TEXT OF L-GRABAR MOVE
1 TO POW-ENABLE OF GRABAR MOVE
1 TO POW-ENABLE OF L-GRABAR MOVE
1 TO POW-ENABLE OF CANCELAR MOVE
1 TO POW-ENABLE OF L-CANCELAR EXIT
PROGRAM.
|
A partir de aquí y para los demás controles
normalmente lo que haremos será ir pasando el
foco al siguiente campo cada vez que pulsemos RETURN,
como lo haríamos en un programa convencional.
Por supuesto el usuario podrá ir libremente por
cada campo. Cuando se pulse el botón de Grabar
será cuando se realicen los controles en los
campos que consideremos como obligatorios. Veamos toda
la programación aunque sea muy simple. | | (2/2) |
|
|