Digamos que para diseñar lo que
comenté anteriormente (las pantallas
que se ven en los bancos, hipermercados...),
los pasos serían diseñar la
pantalla, programar el código para
esa pantalla y por último, asignarle
a los usuarios que sean (normalmente todos
menos en administrador) esa pantalla (ya
terminada y comprobada) para que aparezca
como la única con el inicio de su
sesión, para que no nos toquen nada
importante del propio sistema.
CL --> Es el lenguaje de programación
que usa el AS/400.
Estructura:
PGM
Declaración de archivos (PANTALLA
ó SDA)
Declaración de variables
...
CUERPO DEL PROGRAMA
...
ENDPGM
El CL es un lenguaje secuencial, es decir,
va de arriba hacia abajo. Es un lenguaje
donde no hay estructuras complejas, salvo
IF, ELSE, GOTO. Pero no existen bucles.
Hay formas de hacerlos, pero de una forma
no convencional entre el resto de los lenguajes
de programación.
Declaración de archivos: (DCLF)
DCLF FILE(pantalla) RCDFMT(*ALL)
RCDFMT --> Para enumerar los registros.
Es útil en el caso en el que se tengan
más de un registro en una misma “pantalla”.
*ALL --> Se pone esto para que salgan
todos ó separados en su defecto por
espacios en blanco.
Declaración de variables: (DCL)
DCL VAR(&cont) TYPE(*char) --> Alfanuméricos.
LEN(10) VALUE( )
(*dec) --> Numéricos.
(*lgl) --> Booleanos.
VAR(&cont) --> Nombre de la variable.
Siempre con “&” delante
del nombre de la variable.
TYPE... --> Tipo de la variable.
LEN... --> Longitud
VALUE... --> Opcional, se pone 1 valor,
en el caso de CHAR ó DEC, este valor
va entre apóstrofes (‘ ‘).
Entrada / Salida: (SNDRCVF)
Es el apartado de interacción con
el usuario.
SNDRCVF es para enviar y recibir el fichero.
Si solo se trata de un solo registro, se
pone SNDRCVF y ya está. Si, por el
contrario, se trata de más de un
registro se procederá de la siguiente
forma:
SNDRCVF RCDFMT (r1)
Esto crea una pausa hasta que el usuario
pulsa INTRO ó una tecla de función
válida para dicha pantalla. El control
lo tiene el SDA y se lo pasa al programa.
Las teclas de función se tratan como
variables de esta forma: &IN03. El &
siempre hay que ponerlo; el 03 es el número
dado en la respuesta, y poniendo antes el
“IN”, indicas al programa que
se trata de una tecla de función.
Sentencia IF:
*GT --> >
*LT --> <
*LE --> <=
*GE --> >=
*NE --> <>(Distinto)
*EQ --> =
*AND
*OR
Imaginemos que IN03 es una variable booleana,
que con F3 se sale del programa; cambiar
el contenido de una variable:
INICIO: --> (Etiqueta)
IF COND (&IN03) THEN(DO)
CHGVAR VAR(&MEN) VALUE(‘Pulse
intro’)
SNDRCVF RCDFMT(R1) --> (Para que se visualice)
GOTO FIN
ENDDO --> (Cierras el DO de antes)
ELSE GOTO INICIO
FIN: --> (Etiqueta)
ENDPGM
|