Evento
|
Programación
|
Ayuda
|
FILE-CONTROL
|
SELECT
AGENDA ASSIGN TO "AGENDA.DAT"
ORGANIZATION INDEXED ACCESS DYNAMIC RECORD
KEY KEYAGE FILE STATUS STAAGE.
|
Definición
de nuestros archivos.
|
FILE
|
FD AGENDA
GLOBAL EXTERNAL
LABEL RECORD STANDARD. 01 REGAGE. 02
KEYAGE. 03
AGECOD PIC 9999. 02
AGENOM PIC
X(30). 02
AGEDOM PIC
X(30). 02
AGEPOS PIC
99999. 02
AGEPOB PIC
X(20). 02
AGEPRO PIC
X(15). 02 AGEGEN
PIC X. 02
AGETIP PIC
9. 02 AGETEL
PIC X(20). 02
AGEMOV PIC
X(20). 02
AGEMAI PIC
X(30). 02
AGEWEB PIC
X(40).
|
Descripción
de los ficheros a utilizar en nuestra aplicación.
Al ponerle GLOBAL EXTERNAL conseguimos que
los valores de los campos se pasen de una
ventana a otra y por todos los controles
de la ventana.
|
WORKING
|
01 STAAGE
GLOBAL PIC
XX. 01 MENSAJE IS GLOBAL. 02
FILLER PIC X(7) VALUE "ERROR:
". 02
NUMSTA PIC 99BB. 02
FILLER PIC X(15) VALUE "POR
EL MOTIVO: ". 02
NOMSTA PIC X(15). 01 TABLA
GLOBAL. 02
TCOD PIC 9(4) OCCURS 3000 TIMES. 01
CCC GLOBAL
PIC 9999. 01 TOPE GLOBAL
PIC 9999. 01 AHIVA PIC
9(4) GLOBAL EXTERNAL.
|
Variable
de estado. Mensaje en caso de error al
acceder al fichero. Tabla las
con claves de nuestro fichero. Contador. Tope
de contador. Variable.
|
OPENED
|
ENVIRONMENT
DIVISION. DATA DIVISION. WORKING-STORAGE
SECTION. 01 MENSAJE. 02
FILLER PIC X(30) VALUE "SE VA
CREAR EL ARCHIVO
AGENDA". 01 TITULO. 02
FILLER PIC X(6) VALUE "ERROR".
01 ESTILO PIC S9(4) COMP-5. PROCEDURE
DIVISION. DECLARATIVES. INICIO
SECTION. USE
AFTER ERROR PROCEDURE ON AGENDA. END
DECLARATIVES. ADD
POW-DMICONEXCLAMATION POW-DMOK GIVING ESTILO.
OPEN
INPUT AGENDA IF
STAAGE = "35" CALL
DISPLAYMESSAGE OF PRIMERA USING MENSAJE
TITULO
ESTILO OPEN
OUTPUT AGENDA. CLOSE
AGENDA.
OPEN
I-O AGENDA. CALL
ADDSTRING OF AGE-TIP USING "PERSONAL
". CALL
ADDSTRING OF AGE-TIP USING "PROFESIONAL". CALL
ADDSTRING OF AGE-TIP USING "FAMILIAR
". CALL
ADDSTRING OF AGE-TIP USING "EMPRESAS
". CALL
ADDSTRING OF AGE-TIP USING "SANITARIO
". CALL
"CARGAR".
|
Lo que
se ejecutará justo al abrir la ventana.
Como véis lleva su propia Working
independiente de la otra.
Usamos
las Declaratives para controlar el status
del fichero.
Si el status
es 35 significa que no existe y nos saca
una ventana indicándonoslo. A
continuación abirmos el archivo como
I-O y cargamos el combobox con los tipos
de contacto que vamos a tener. Hacemos
una llamada a la rutina CARGAR.
|
CLOSE
|
ENVIRONMENT
DIVISION. DATA DIVISION. PROCEDURE
DIVISION. CLOSE
AGENDA.
|
Al cerrar
la ventana, también cerramos nuestro
fichero. Lo último que se hace.
|
CLOSECHILD
|
ENVIRONMENT
DIVISION. DATA DIVISION. WORKING-STORAGE
SECTION. 01 ESTILO PIC S9(4) COMP-5. PROCEDURE
DIVISION. MOVE
POW-ON TO POW-ENABLE OF PRIMERA. IF
AHIVA > 0 GO SUERTE. CALL
SETFOCUS OF AGE-COD. EXIT
PROGRAM. SUERTE. MOVE
AHIVA TO POW-NUMERIC OF AGE-COD. MOVE
AHIVA TO AGECOD. READ
AGENDA NOT INVALID KEY CALL "EXISTE". CALL
"PONCCC". EXIT
PROGRAM.
|
Esto se
realizará cada vez que se cierre
una ventana hija de ésta. La ponemos
activa. Comprobamos si nos viene con un
código y si es así procedemos
a mostrarlo y sino se va de nuevo a pedir
el código.
|