Ficheros / Variables
La descripción de los ficheros se hace practicamente igual que en los demás compiladores, salvo algunas apreciaciones:
    SELECT CLIENTE ASSIGN TO "CLIENTES.DAT"
    ORGANIZATION INDEXED ACCESS DYNAMIC
    LOCK MODE AUTOMATIC
    RECORD CLI-CODIGO
    ALTERNATE RECORD CLI-NOMBRE, CLI-CODIGO
    FILE STATUS STA-CLIENTE.
Lo mas importante y destacado es la linea LOCK MODE, con la cual controlamos el nivel de bloqueo que queremos para dicho fichero y sus registros, el modo AUTOMATIC, es el idóneo en el 98% de los casos, bloqueará el registro cuando el fichero está en I-O.

En el caso de la declaración de las claves, tener en cuenta que soporta el sistema de claves no dedundantes, pero al contrario que otros compiladores, no soporta nombre lógicos para dichas claves, por lo que los START hay que hacerlos por toda la declaración de la clave.

Por ejemplo, en la declaración anterior, si hicieramos un START de dicho archivo para la clave alterna, lo haríamos de la siguiente forma:
    START CLIENTE KEY NOT LESS CLI-NOMBRE, CLI-CODIGO INVALID KEY .....
    END-START
Los ficheros de RM/Cobol que no incluyan en su FD ninguna cláusula COMPUTATIONAL, son accesibles para PowerCobol, tanto para leer, como para escribir en ellos, con lo cual es una buena opción para ir implementando programas con PC a la vez que seguimos manteniendo nuestra aplicación, si la tenemos en RM.
Yo personalmente tengo una aplicación en RM/Cobol para el control de presencia y rendimiento en mi empresa y en la actualidad sigue funcionando, pero todos los datos estadísticos y de consultas, los he realizado con PowerCobol y por supuesto ambos leen y escriben en los mismos archivos.

Programas sin pantallas

Si deseamos incorporar programas que no tienen ventanas, es decir rutinas para cálculos en los que pasamos una serie de valores, utilizaremos PowerGem. Es un editor de proyectos muy completo. Con el, abriremos nuestro programa fuente y lo compilaremos. El nos crea un .obj (programa objeto) y luego solo tendremos que ir a PowerCobol e incorporarlo en nuestro módulo.

Las variables comunes en el programa se definen en la LINKAGE SECTION, como siempre, pero en las ventanas de PC las podremos definir como GLOBAL EXTERNAL.

La llamada desde cualquier evento se realizará como siempre:
    CALL 'nombredeprograma' USING variables
Rutinas PowerCobol

PC dispone de muchas rutinas interesantes para uso en ficheros, información del sistema, números, fechas, etc... Todas están explicadas en los manuales y deben ser tenidas en cuenta, ya que muchas de ellas, son de muchísima utilidad.

Para llamarlas, se utiliza la misma forma que para llamar a una rutina normal, es decir utilizando el comando CALL, por ejemplo si queremos borrar fisicamente un fichero del disco utilizamos la siguiente:
    CALL 'CBL_DELETE_FILE' USING 'nombredeficheroaborrar' RETURNING variable
La diferencia es que esa rutina no existe en ningún .obj que hayamos creado nosotros sino que existe en unas librerias que aporta el propio PowerCobol. Por lo tanto en nuestro módulo habrá que añadirlas. En el caso de las rutinas CBL de PC, la librería a añadir es F3BICBLR.LIB que encontraremos en la misma carpeta donde está instalado PowerCobol.

Variables

Las variables se definen como siempre en la WORKING. Pero al tener la posibilidad de definirla en la WORKING de cada evento, las variables pueden tener varios "estados":
  • Una variable definida en la WORKING del form, debemos indicarle que será GLOBAL para que tengo efecto durante todos los eventos de dicho FORM. Es decir esa variable va manteniendo su valor siempre que estemos en la ventana.
  • En un evento podemos definir una variable (incluso con el mismo nombre que otra que tengamos como global) pero su ámbito solo será para dicho evento.
  • Para utilizar una variable en mas de una ventana la declararemos como EXTERNAL, además de GLOBAL, así su valor irá por todas las ventanas que así la tengan definida. Su uso es similar a la LINKAGE SECTION. Evidentemente esa misma variable debe de estar definida también como EXTERNAL en las demás ventanas que queramos que su valor la acompañe.
  • Siguiendo éstas premisas, las variables de un fichero, es decir, su FD debe de ir también con la palabra GLOBAL o EXTERNAL, según queramos que sea su ámbito. Yo personalmente recomiendo definir la FD solo como GLOBAL.
En las ventanas, lo mas lógico es crear en la WORKING principal una variable a nivel 01 y definirla como GLOBAL y colgar de ella el resto:
    WORKING-STORAGE SECTION.
    01 VARIABLES GLOBAL.
        02 CONTADOR PIC 999.
        02 TEXTO PIC X(40).
        02 CAMPO PIC X(10).
        02 NOMBRE PIC 9(8)V99.
En el caso de los ficheros la palabra GLOBAL irá en la línea de la FD:

FD CLIENTES GLOBAL LABEL RECORD STANDARD.



Este artículo proviene de Cobol en español
http://www.escobol.com

La dirección de esta noticia es:
http://www.escobol.com/modules.php?name=Sections&op=viewarticle&artid=100