Métodos
Método: Son procedimientos que ya vienen programados por el lenguaje y nosotros solo tendremos que llamarlos para que actúen. Son métodos, añadir campos a un Combobox, enviar el foco a cualquier objeto, abrir una ventana, cerrarla, etc ... Como veremos cada uno de los objetos puede tener sus propios métodos.

Para acceder a todos los métodos se utilizará la sentencia CALL, quedando su formato de la siguente manera:

CALL método OF objeto USING parámetros.

A continuación vamos a explicar algunos de los métodos mas habituales. Pero como siempre os digo, en los ejemplos prácticos es donde mejor se comprende todo.

METODO DESCRIPCION
ADDSTRING
ADDSTRING256
Para añadir elementos a objetos ListBox y ComboBox.
CALL ADDSTRING OF LISTA USING "PRIMER ELEMENTO".
ALARM Aplicable solo en los Sheet y produce un sonido, podemos escoger entre varios predefinidos.POW-MBOK, POW-MBASTERISK, POW-MBQUESTION, POW-MBEXCLAMATION, POW-MBHAND.
CALL ALARM OF SHEET1 USING POW-MBOK.
CLEARLIST Aplicable a ListBox y ComboBox, conseguimos reiniciar los objetos de tal manera que quedan vacios completamente.
CALL CLEARLIST OF LISTA.
OPENPRINTER
WHITESHEET
CLOSEPRINTER
Solo para el objeto Print. Abrimos y cerramos el objeto Print, para provocar una salida por impresora de los objetos de nuestra pantalla que tengan la opción PrnEnable activada.
CALL OPENPRINTER OF IMPRESORA.
CALL WRITESHEET OF VENTANA1.
CALL CLOSEPRINTER OF IMPRESORA.
CLOSESHEET Aplicable solo a las ventanas, con ello las cerramos.
CALL CLOSESHEET OF VENTANA1.
DELETESTRING Aplicable a los controles ListBox y ComboBox, y conseguimos borrar un elemento de la lista.
CALL DELETESTRING OF LISTA USING 1.
DISPLAYMESSAGE Se va a explicar en la parte final. Por ser un método muy utilizado y util.
GETCELLNUMERIC
GETCELLTEXT
Aplicable a las tablas y conseguimos extraer el contenido de las celdas, ya sean numéricas o alfanuméricas. En el ejemplo moveremos a la variable VALOR, el contenido de la celda situada en la columna 1 línea 1 de la tabla llamada TABLA.
CALL GETCELLTEXT OF TABLA USING VALOR 1 1.
OPENSHEET Aplicable solo a las Sheet y con ella las abrimos. Las ventanas siempre dependen de una padre.
CALL OPENSHEET OF PRINCIPAL USING "SEGUNDA".
SETCELLNUMERIC
SETCELLTEXT
Aplicable a las tablas y conseguimos introducir un valor en las celdas, ya sean numéricas o alfanuméricas. En el ejemplo moveremos el valor "HOLA" a la celda situada en la columna 1 línea 1 de la tabla llamada TABLA.
CALL SETCELLTEXT OF TABLA USING "HOLA" 1 1.
SETFOCUS Aplicable a la mayoría de los controles. Con el conseguimos pasar el foco de un objeto a otro.
CALL SETFOCUS OF LISTA.

Existen muchos mas métodos, pero estos son los mas utilizados. Veamos como un ejemplo sencillo como rellenaríamos un ListBox a partir de una tabla definida en la Working. Siendo LISTA l nombre que tiene nuestro ComboBox o ListBox. Y además tenemos una tabla con dos columnas, en la primera introducimos el número y en la segunda su nombre.

 WORKING-STORAGE SECTION.
 01  TABLA.
      02  FILLER PIC X(10) VALUE "PRIMERO".
      02  FILLER PIC X(10) VALUE "SEGUNDO".
      02  FILLER PIC X(10) VALUE "TERCERO".
      02  FILLER PIC X(10) VALUE "CUARTO".
      02  FILLER PIC X(10) VALUE "QUINTO".
 01  TABLITA REDEFINES TABLA.
      02  ELEMEN PIC X(10) OCCURS 5 TIMES.
 01  CONTA PIC 9.
 01  CAMPO PIC X(10).
 ...
 PROCEDURE DIVISION.
 INICIO.
      MOVE 0 TO CONTA.
 UNO.
      ADD 1 TO CONTA IF CONTA > 5 GO DOS.
*  aqui cargamos el ComboBox.
      CALL ADDSTRING OF LISTA USING ELEMEN (CONTA).
*  aqui cargamos la tabla.
      CALL SETCELLNUMERIC OF TABLA USING CONTA CONTA 1.
      MOVE ELEMEN (CONTA) TO CAMPO.
*  en la version 3 de PowerCobol da error si introducimos un campo
*  con subindice directamente en una tabla, por eso primero lo 
*  muevo a un campo.
      CALL SETCELLTEXT OF TABLA USING CAMPO CONTA 2.
      GO UNO.
 DOS.
      EXIT. 

Después de ejecutar el programa:

el ComboBox nos hubiera quedado asi: 
Y la tabla hubiera quedado asi:
1 PRIMERO
2 SEGUNDO
3 TERCERO
4 CUARTO
5 QUINTO
DISPLAYMESSAGE

Con este método de PowerCobol, conseguimos que se nos muestre una ventana independiente pero sin perder el control sobre la que tenemos activa. Son las típicas ventanas de confirmación de Windows y tienen unos parámetros pre-asignados. A continuación vamos a ver algunos ejemplos y como quedan en la práctica.

Su formato, como cualquier otro método es el siguiente:

CALL DISPLAYMESSAGE OF nombredeventana USING texto título estilo.

  • Texto: el texto hace referencia al texto que nos saldrá al mostrar el mensaje en la ventana.
  • Título: el título hace referencia al título que tendrá la venta que nos saldrá.
  • Estilo: El estilo se refiere al icono que tendrá la ventana y a las posibles opciones que se nos presenten, en cuanto a los ICONOS:
    • POW-DMNOICON, sin icono.
    • POW-DMICONSTOP, icono con el símbolo Stop.
    • POW-DMICONQUESTION, icono de interrogación.
    • POW-DMICONEXCLAMATION, icono con el signo de exclamación.
    • POW-DMICONINFORMATION, icono con una (i).
  • Estilo: En cuanto a los botones:
    • POW-DMOK, solo el botón de Ok.
    • POW-DMOKCANCEL, botones de Ok y Cancelar.
    • POW-DMABORTRETRYIGNORE, botones de Abortar, Reintentar e Ignorar.
    • POW-DMYESNOCANCEL, botones de Si, No y Cancelar.
    • POW-DMYESNO, botones de Si y No.
    • POW-DMRETRYCANCEL, botones de Reintentar y Cancelar.
  • Respuestas: las posibles respuestas al pulsar los distintos botones.
    • POW-DMROK, si hemos pulsado el boton de Ok.
    • POW-DMRCANCEL, si pulsamos Cancelar.
    • POW-DMRABORT, si pulsamos Abortar.
    • POW-DMRRETRY, si pulsamos Reintentar.
    • POW-DMRIGNORE, si pulsamos ignorar.
    • POW-DMRYES, si pulsamos Si.
    • POW-DMRNO, si pulsamos No.
El estilo se debe de guardar en una varible con el formato: 01  ESTILO PIC S9(4) COMP-5. Y para introducir los valores que deseemos lo haremos de la siguente manera:

ADD POW-DMYESNO POW-DMICONQUESTION GIVING ESTILO.
De esta manera asignamos al estilo el icono de Interrogación y los botones de Si y No, quedando nuestra orden completa de la siguiente manera, teniendo la ventana donde saldrá el nombre de VENTANA1:

WORKING-STORAGE SECTION.
01  ESTILO PIC S9(4) COMP-5.
01  TITULO PIC X(20).
01  TEXTO PIC X(40).
...
PROCEDURE DIVISION.
INICIO.
      ADD POW-DMYESNO POW-DMICONQUESTION GIVING ESTILO.
      MOVE "Mensaje" TO TITULO.
      MOVE "Salir de la aplicación ?" TO TEXTO.
      CALL DISPLAYMESSAGE OF VENTANA1 USING TITULO TEXTO ESTILO.
      ....

Ejemplo de DisplayMessageAhora nos saldrá la correspondiente ventana con el mensaje y entonces puede que le demos al botón del Si o al del No, para controlarlo utilizamos la siguiente instrucción:

IF PROGRAM-STATUS = POW-DMRYES
   MOVE "HAS PULSADO SI" TO POW-TEXT
   OF TEXTODEEXPLICACION.
IF PROGRAM-STATUS = POW-DMRNO
   MOVE "HAS PULSADO NO" TO POW-TEXT
   OF TEXTODEEXPLICACION.




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=56