Cobol en español
  Página de Inicio Recomiéndala Contáctame Usuarios en Linea
12
     Crea Una cuenta  
Video 1
Video 2
Video 3

Si te ha servido la web
o te han gustado los videos, colabora haciendo click en el botón.

MANUALES
TEMATICOS
BASES DE DATOS
COBOL / WINDOWS
COBOL / UNIX
HISTORIA /DOCS
 
BUSCADOR
PROGRAMANDO-Dos
TRUCOS
AÑO 2.000
TEORIA POWCOB-3
PROG. POWCOB-3
TEORIA POWCOB-5
PROG. POWCOB-5
OCX-ESCOBOL
RUTINAS/MANUALES
OCX / JUEGOS
HERRAMIENTAS
COMPILADORES
ENCUESTAS
ENLACES
FOROS
TOP 10

CHAT   Usuarios: 0
Temáticos
TEMARIOCódigos de Error
Ventanas
Palabras Reservadas
Clasificando (Sort)
Tablas
Ficheros (I)
Ficheros (II)
Ficheros (III)

Ventanas

página(s) : 1/2
(2437 palabras totales en este texto)
(29188 Lecturas)   Versión Imprimible



¿Que son y para que sirven las "ventanas" en cobol ?.
Este nombre del que estamos tan acostumbrados a oir y que parece que es propiedad de Microsoft, tiene otras y muy diversas utilidades. Una ventana es en realidad una porción virtual de la pantalla, la cual podremos definir con unas características propias de tamaño, color, etc ...

Hasta que éstas aparecieron, cada vez que queriamos sobreponer una información a la que teníamos en pantalla, la construiamos encima y después, debiamos de volver a pintar la que estuviera debajo. Con el uso de las ventanas ésto ya no es necesario. Os pondré un ejemplo:

Supongamos que tenemos un mantenimiento de clientes, el cual nos ocupa toda la pantalla, y vamos a introducir la provincia. Si en éste momento quisieramos mostrarle una tabla con todas las opciones posibles, era necesario dibujarla encima y una vez seleccionada la provincia adecuada, volver a pintar la pantalla de mantenimiento que habíamos dejado debajo. Pues bien con el uso de las ventanas, ésto ya no es necesario, porque lo que hacemos es crear una ventana (una pantalla virtual) de las dimensiones que queramos, trabajamos todo lo que queramos con ella y cuando no nos haga falta, la cerramos y lo que había debajo en la pantalla "principal" quedará como estaba. Espero que me hayais entendido, para poder seguir explicando su utilización.

Yo conozco el uso en Acucobol y RM/Cobol, por lo que la explicación irá orientada a éstos dos compiladores, si alguien conoce la de otros, le animo a que me facilite la explicación.

Debemos de tener en cuenta que aunque la sintaxis sea diferente en cada uno de los compiladores, la funcionalidad, el uso y la idea, son las mismas. Antes de pasar a la explicación tendremos que tener en cuenta:

    • Podremos tener tantas ventanas abiertas como queramos.
    • El control siempre estará sobre la ventana activa, no podremos trabajar desde una ventana en otra.
    • La linea 1 y la columna 1 corresponderán a la esquina superior izquierda de la ventana y no a la de la pantalla.
    • Las características de la ventana se darán en el momento de su creación y serán, título, posición del título, borde, color, tamaño, etc ....


VENTANAS EN RM/COBOL.

En RM/Cobol, todas las características se dan mediante unas variables definidas en la WORKING, éstas son las siguientes. Por supuesto le puedes poner el nombre que quieras a las variables, ya que lo que al final vamos a conseguir es darle una variable con longitud 80 y una sentencia para que la ventana se dibuje.

01  WCB.
      03  WINCAB              PIC 999 BINARY VALUE 0.
      03  WINLIN               PIC 999 BINARY.
      03  WINCOL              PIC 999 BINARY.
      03  WINLOC              PIC X VALUE "S".
*          (S-W)
      03  WINBORST          PIC X VALUE "Y".
*          (Y-N)
      03  WINBORTI           PIC 9 VALUE 2.
      03  WINBORCH          PIC X.
      03  WINLLE               PIC X.
*         (Y-N)
      03  WINLLECH           PIC X.
      03  WINTITSI            PIC X VALUE "T".
*         (T-B)
      03  WINTITPO           PIC X VALUE "C".
*         (C-L-R)
      03  WINTITLO           PIC 999 BINARY.
      03  WINTIT              PIC X(64).
Explicación de las variables: (de las importantes).

WCB: Aquí se guardará toda la información para luego dibujar la ventana, podeis ponerle el nombre que querais, tanto a ésta como al resto.
WINLIN: Número de lineas que va a tener la ventana.
WINCOL: Número de columnas que va a tener la ventana.
WINBORST: (Y)ES (N)O, si va a tener o no, borde.
WINBORTI: Tipo de borde, hay cuatro tipos distintos.
WINTITSI: (T)OP (B)UTTON, posición del título, arriba o abajo.
WINTITPO: (C)ENTER (L)EFT (R)IGHT, justificación del título.
WINTITLO: Longitud en caracteres del título.
WINTIT: Título de la ventana.

La sentencia que utilizamos para crearla es DISPLAY, pero con unos matices distintos como vamos a ver a continuación.

Primero moveríamos los valores adecuados a las variables y luego la sentencia, veamos como quedaría:

    MOVE 10 TO WINLIN.
    MOVE 40 TO WINCOL.
    MOVE " PROBANDO VENTANAS " TO WINTIT.
    MOVE 19 TO WINTITLO.
    DISPLAY WCB LINE 3 COL 3 LOW ERASE
                CONTROL "WINDOW-CREATE".

* asi creariamos la ventana, los otros valores de las variables se
* pueden asignar con values, porque normalmente no cambian.
* A partir de éste momento, todo lo que hagamos, se hará sobre
* ésta ventana. Para cerrarla utilizariamos ésta sentencia.

    DISPLAY WCB CONTROL "WINDOW-REMOVE".
Si quisieramos abrir mas ventanas, en vez de displayar directamente la variable WCB, ésta la guardariamos en una tabla por ejemplo:

    WORKING-STORAGE SECTION.
    01  VENTANAS.
         02  WIN PIC X(80) OCCURS 10 TIMES.
    ...
    ...
    PROCEDURE DIVISION.
    ...
    ...
    MOVE 10 TO WINLIN.
    MOVE 40 TO WINCOL.
    MOVE " PROBANDO VENTANAS " TO WINTIT.
    MOVE 19 TO WINTITLO.
    MOVE WCB TO WIN (1).
    DISPLAY WIN (1) LINE 3 COL 3 LOW ERASE
                CONTROL "WINDOW-CREATE".
    MOVE 1 TO WINLIN.
    MOVE 30 TO WINCOL.
    MOVE SPACES TO WINTIT MOVE 0 TO WINTITLO.
    MOVE WCB TO WIN (2).
    DISPLAY WIN (2) LINE 5 COL 10 LOW ERASE
                CONTROL "WINDOW-CREATE".

* Cuando usamos mas de una ventana, deberemos de ir
* cerrándolas según la última que se abrió.

    DISPLAY WIN (2) CONTROL "WINDOW-REMOVE".
    DISPLAY WIN (1) CONTROL "WINDOW-REMOVE".

   Inicio de Página    | Siguiente (2/2)
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]