|
 |
 |
La Primera Ventana
(2586 palabras totales en este texto) (18960 Lecturas) 
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. | |
|
|