Cobol en español
MANUALES
TEMATICOS
BASES DE DATOS
COBOL / WINDOWS
COBOL / UNIX
HISTORIA /DOCS
PROGRAMANDO-Dos
TRUCOS
AÑO 2.000
TEORIA POWCOB-3
PROG. POWCOB-3
TEORIA POWCOB-5
PROG. POWCOB-5
OCX-ESCOBOL
Teoría sobre PowCobol-3
TEMARIOIntroducción
Consideraciones
El Menú de PowerCobol
Primer Cambio
La Primera Ventana
Objetos o Controles
Propiedades
Métodos
Impresión en Power

La Primera Ventana

(2586 palabras totales en este texto)
(18960 Lecturas)   Versión Imprimible



Al abrir Fujitsu PowerCobol (en adelante Power), nos sale automaticamente una ventana denominada SHEET en blanco y las ventanas de control que tengamos por defecto, pueden ser la de Status, la de Font, la de Color y la de Item, Si alguna no se abre o bien otra queremos cerrarla, bastará con activarla en el menu Tool.

Sobre ésta primera ventana ya podemos empezar a poner nuestros controles u objetos y darles vida. Pero antes de nada aprendamos mas acerca de la ventana, que en realidad es otro objeto mas de nuestra aplicación.

Veamos cuales son sus propiedades.

  • Sheet name: Será el nombre que la identificará en nuestra aplicación.
  • Title: Será lo que aparezca en ella cuando ejecutemos el programa.
  • Icon Name y Cursor Name: Tendremos ocasión de escoger un tipo de icono para mostrar en la barra de título, puede ser uno de los que trae por defecto o cualquiera que nosotros hayamos creado o vinculado. Y el cursor igualmente.
  • Window, Frame, Style: Con ellas podremos variar la apariencia visual de nuestra ventana. Lo mas recomendable es que probéis y os quedéis con la que mas os guste.

Con la ventana de Status, obtenemos información acerca de la posición relativa de nuestra ventana con respecto a la pantalla y el tamaño de achura y altura que tiene.

Así mismo, con la ventana de color podemos modificar el color de fondo y de texto que tendrá.

En cuanto a los eventos que tiene un objeto de tipo "sheet" o ventana, son los siguientes:

  • SPECIAL-NAMES: Actuará igual que en un programa normal, es decir aquí definiremos lo mismo que haríamos en un programa normal en nuestra CONFIGURATION SECTION. También es posible definir tipos de impresión y otras posibilidades que nos ofrece el propio compilador de Fujitsu.
  • FILE-CONTROL: Definición de archivos que vamos a utilizar en nuestra ventana Exactamente igual que se explican en los manuales con la excepción de que no hay que especificar el tipo de dispositivo excepto en la definición de la impresora que si se pondrá. Además aqui es donde si queremos especificar que vamos a trabajar con un fichero Btreive (RM) se le indica con las letras BTRV, después del ASSIGN TO. Un ejemplo sería el siguiente:
  • SELECT SOCIOS ASSIGN TO "SOCIOS.DAT" BTRV 
    ORGANIZATION INDEXES ACCESS DYNAMIC
    RECORD KEY KEYSOC
    ALTERNATE RECORD KEY KEYSOC1
    FILE STATUS STASOC.

    SELECT IMPRE ASSIGN TO PRINTER.
  • BASED:Es algo propio del Fujitsu y no se para que sirve, además en lo que he podido leer no he conseguido nada, puede ser que sea por compatibilidad con sus productos anteriores, de todas formas no lo he necesitado para realizar ninguna aplicación.
  • FILE: Aquí será donde se definan las descripciones de los archivos que vayamos a utilizar. Quiero hacer incapié en una cosa. Tened siempre en cuenta que cuando trabajemos con Power, las variables serán por defecto locales y por lo tanto no se extenderán al resto de ventanas que utilice nuestra aplicación, para ello es necesario utilizar la opción GLOBAL y EXTERNAL. De tal modo que una FD quedaría:
  • FD  SOCIOS GLOBAL EXTERNAL LABEL RECORD STANDARD.
    01  REGSOC.
         02  KEYSOC.
              03 ...........
  • WORKING: Que os voy a contar, aquí definiremos las variables a utilizar en el programa. Recordad lo que os he dicho antes, podéis utilizar GLOBAL y EXTERNAl si lo creéis conveniente, para usarlas en otras ventanas de la aplicación. Además quiero añadir que por ejemplo, si luego algún componente determinado va a utilizar alguna variable exclusiva la podremos definir para ese componente y no para el resto de programa. Recordad que la ventana sobre la que estamos hablando es otro componente de nuestro programa para POWER. Eso significa también que si definimos una variable como:  01  SALUDO PIC X(30).  Esa variable no la podremos utilizar en un campo de nuestra ventana, ya que al no definirla como GLOBAL, le indicamos al compilador que solo se utilizará en la ventana como componente, pero no en el resto del programa, por lo cual lo mas razonable es definirlas todas como GLOBAL. El ponerle EXTERNAL, hará la misma función que conseguiamos con la LINKAGE SECTION.
  • CONSTANT: Para definir constantes, pero se pueden definir igualmente en la Working como siempre hemos hecho con VALUE.
  • PROCEDURE: ¡¡¡ OJO  !!! Atención, aquí se van a definir las rutinas que luego podremos llamar desde nuestro programa, en ningún caso, lo que aquí se ponga, se ejecutará por si solo. Yo me tiré dos días preguntándome porque no se ejecutaban las sentencias que ponía aquí. Imaginaros las rutinas que hacéis para luego llamarlas con CALL, pues bien eso mismo es ésto,, hasta hay que definirlas completamente es decir con IDENTIFICATION, PROGRAM-ID, etc .. Un ejemplo:
IDENTIFICATION DIVISION.
PROGRAM-ID. LIMPIAR IS COMMON.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
INICIO SECTION.
MOVE 0 TO POW-NUMERIC OF CODIGO.
MOVE SPACES TO POW-TEXT OF NOMBRE.
MOVE SPACES TO POW-TEXT OF DIRECCION.
MOVE SPACES TO POW-TEXT OF POBLACION.
EXIT PROGRAM.
END PROGRAM LIMPIAR.

Si veis la estructura es similar a un pequeño programa. Para luego llamarlo desde cualquier parte, simplemente CALL "LIMPIAR" en este caso porque ese es su nombre. En este caso lo que hará será mover a espacios y a ceros el contenido de los controles que se indican (CODIGO, NOMBRE, DIRECCION y POBLACION.
  • OPENED: Aquí si pondremos realmente lo que queramos que el programa realice justo al mostrar la ventana, por ejemplo, rellenar los combobox o grid que tengamos, o abrir fichero o cualquier acción previa a la visualización de la ventana. Podremos tener aquí nuestra propia Environment o Data Division si fuese necesario.
  • CLOSE: Aquí se darán las ordenes que el programa ejecute, justo al cerrar la ventana, lo mas normal será cerrar los ficheros, pero podremos dar cualquier comando.
  • CLOSECHILD: En este apartado, programaremos las acciones que el compilador ejecutará siempre que cerremos una ventana que haya sido abierta desde ésta. Es decir si desde ésta ventana principal llamamos a otra. Justo al cerrarse esta nueva y antes de pasar el control a la principal se ejecutará este apartado.
Una vez explicado esto podemos empezar a colocar los objetos que deseemos en nuestra ventana. Recordad todo bien, en la PROCEDURE irán las rutinas que queramos llamar luego desde el programa, en OPENED, irá lo que deseemos que el programa realice antes de mostrar la ventana. Y en toda la DATA, cualquier dato que queramos que sea portable a cualquiera de los componentes del programa, lo declararemos con GLOBAL y si además queremos que sea portable a otras ventanas, además de GLOBAL, le pondremos EXTERNAL. Esto es algo muy importante.

Tenéis que tener en cuenta que cada ventana es un programa independiente (por llamarlo de alguna forma) es decir que los datos y variables si no las definís con EXTERNAL, no se corresponderán. En Acucobol o RM, siempre que abrimos una ventana desde un programa, éste sigue teniendo el control y no hay porque definir nada nuevo, aquí NO, aquí cada ventana es un programa.

Solo los mensajes que podremos displayar en ventanas pequeñas, del tipo (SI / NO), (ACEPTAR / CANCELAR ) formarán parte de nuestro programa o ventana.

Una vez creada la ventana, lo siguiente que debemos de hacer es incorporarla a nuestro Proyecto y estará lista para ser ejecutada.

En el siguiente capítulo, voy a explicar como se llaman las variables que hacen referencia a las propiedades de los controles mas usuales, para después realizar un pequeño programa y ver como funciona.

   Inicio de Página   
Sitio desarrollado con PHP-Nuke. Todos los Derechos Reservados.
PHP-Nuke es un Software Libre realizado con licencia GNU/GPL.
Página creada en Junio de 1.998, con el proposito de difundir el lenguaje Cobol en nuestra lengua.
Andres Montes [98/11]