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
Programando en Ms-Dos (texto)
TEMARIOPaso a paso
1.- Introducción
2.- Empezando
3.- Las variables
4.- Iniciando el proceso
5.- Pantalla inicial y Menú
6.- Mantenimiento Fichero
7.- Consulta con Scroll
8.- Opción de Listado
uN JueGo eN CoBoL

8.- Opción de Listado

página(s) : 2/2
(1877 palabras totales en este texto)
(20765 Lecturas)   Versión Imprimible



»» RESPUESTA A LAS PREGUNTAS Veamos como aceptamos las diferentes opciones que nos propone el listado, si creéis que se pueden añadir mas, me lo decís y las preparo.
Para la primera pregunta, ordenar por, generamos otra ventana con las opciones posibles.      MOVE 0 TO LI.
      MOVE 4 TO WINLIN MOVE 12 TO WINCOL.
      MOVE SPACES TO WINTIT MOVE 0 TO WINTITLO.
      MOVE WCB TO WIN (3).
      DISPLAY WIN (3) LINE 13 COL 56 LOW ERASE
          CONTROL "WINDOW-CREATE, FCOLOR=WHITE, BCOLOR=BLUE".
LISTA1.
      ADD 1 TO LI IF LI > 4 GO LISTA2.
      DISPLAY ELELIS (LI) LINE LI COL 1 LOW.
      GO LISTA1.
LISTA2.
      IF LI > 4 MOVE 1 TO LI.
      IF LI < 1 MOVE 4 TO LI.
      DISPLAY ELELIS (LI) LINE LI COL 1 LOW REVERSE.
LISTA3.
      ACCEPT OP LINE LI COL 1 OFF NO BEEP
          ON EXCEPTION ESCA NEXT SENTENCE.
      DISPLAY ELELIS (LI) LINE LI COL 1 LOW.
      IF ESCA = 53 ADD 1 TO LI GO LISTA2.
      IF ESCA = 52 SUBTRACT 1 FROM LI GO LISTA2.
      IF ESCA = 27 DISPLAY WIN (3) CONTROL "WINDOW-REMOVE"
          GO LISTAFIN.
      IF ESCA = 13 NEXT SENTENCE ELSE GO LISTA2.
      DISPLAY WIN (3) CONTROL "WINDOW-REMOVE".
      MOVE LI TO LISCLA.
      DISPLAY ELELIS (LI) LINE 1 COL 20 LOW.
Según cojamos una u otra opción, se nos plantearán unas preguntas distintas, por eso nos vamos a párrafos distintos.
      IF LISCLA = 1 OR LISCLA = 2 GO LISTA31.
      IF LISCLA = 3 GO LISTA33.
      IF LISCLA = 4 GO LISTA34.


Estos dos párrafos se ejecutarán en el caso de haber seleccionado clasificar por nombre o por código, entonces se nos pedirán un DESDE y un HASTA para nuestro listado.
LISTA31.
      DISPLAY "DESDE .. " LINE 2 COL 2.
      DISPLAY "HASTA .. " LINE 2 COL 21.
      ACCEPT DESDE LINE 2 COL 12 PROMPT LOW NO BEEP
          ON EXCEPTION ESCA NEXT SENTENCE.
      IF ESCA = 27 GO LISTA0.
      IF DESDE = 0 DISPLAY "LISTAR TODOS "
          LINE 2 COL 12 LOW GO LISTA4.
      MOVE DESDE TO DC4 DISPLAY DC4 LINE 2 COL 12 LOW.
LISTA32.
      ACCEPT HASTA LINE 2 COL 32 PROMPT LOW NO BEEP
          ON EXCEPTION ESCA NEXT SENTENCE.
      IF ESCA = 27 GO LISTA31.
      IF DESDE > HASTA GO LISTA32.
      MOVE HASTA TO DC4 DISPLAY DC4 LINE 2 COL 32 LOW.
      GO LISTA4.


Si hemos seleccionado clasificar por POBLACION, nos pedirá que le indiquemos una, por si solo queremos listar los de esa población o sino todos.
LISTA33.
      DISPLAY "POBLACION .." LINE 2 COL 2.
      ACCEPT DEPOB LINE 2 COL 21 LOW NO BEEP ECHO
          ON EXCEPTION ESCA NEXT SENTENCE.
      IF ESCA = 27 GO LISTA0.
      IF DEPOB = SPACES DISPLAY "LISTAR TODOS "
          LINE 2 COL 21 LOW GO LISTA4.
      GO LISTA4.


Si hemos seleccionado clasificar por PROVINCIA, nos pedirá que le indiquemos una, por si solo queremos listar los de esa provincia o sino todos.
LISTA34.
      DISPLAY "PROVINCIA .." LINE 2 COL 2.
      ACCEPT DEPRO LINE 2 COL 21 LOW NO BEEP ECHO
          ON EXCEPTION ESCA NEXT SENTENCE.
      IF ESCA = 27 GO LISTA0.
      IF DEPOB = SPACES DISPLAY "LISTAR TODOS "
          LINE 2 COL 21 LOW GO LISTA4.


Aquí preguntaremos si deseamos separador en el listado, cada vez que cambie la clave por la que hemos seleccionado clasificar, esto es muy útil, por ejemplo si lo hacemos por Población o por Provincia, porque cada vez que cambie el valor, le indicaremos que realice un subtotal y una separación.
LISTA4.
      IF LISCLA = 1 MOVE "N" TO OP ELSE MOVE "S" TO OP.
      ACCEPT OP LINE 4 COL 21 UPDATE NO BEEP LOW
          ON EXCEPTION ESCA NEXT SENTENCE.
      IF ESCA = 27 DISPLAY " " LINE 4 COL 21 GO LISTA0.
      IF OP = "S" OR OP = "N" NEXT SENTENCE ELSE GO LISTA4.
      MOVE OP TO LISSEP.


Volvemos a crear otra ventana, para ofrecernos las opciones del listado, por Impresora HP, Otra impresora o por pantalla.
LISTA5.
      MOVE 3 TO WINLIN MOVE 15 TO WINCOL.
      MOVE SPACES TO WINTIT MOVE 0 TO WINTITLO.
      MOVE WCB TO WIN (4).
      DISPLAY WIN (4) LINE 18 COL 56 LOW ERASE
          CONTROL "WINDOW-CREATE, FCOLOR=WHITE, BCOLOR=BLUE".
      MOVE 0 TO LI.
LISTA51.
      ADD 1 TO LI IF LI > 3 GO LISTA52.
      DISPLAY ELEPOR (LI) LINE LI COL 1 LOW.
      GO LISTA51.
LISTA52.
      IF LI > 3 MOVE 1 TO LI.
      IF LI < 1 MOVE 3 TO LI.
      DISPLAY ELEPOR (LI) LINE LI COL 1 LOW REVERSE.
LISTA53.
      ACCEPT OP LINE LI COL 1 OFF NO BEEP
          ON EXCEPTION ESCA NEXT SENTENCE.
      DISPLAY ELEPOR (LI) LINE LI COL 1 LOW.
      IF ESCA = 53 ADD 1 TO LI GO LISTA52.
      IF ESCA = 52 SUBTRACT 1 FROM LI GO LISTA52.
      IF ESCA = 27 DISPLAY WIN (4) CONTROL "WINDOW-REMOVE"
          GO LISTA4.
      IF ESCA = 13 NEXT SENTENCE ELSE GO LISTA52.
      DISPLAY WIN (4) CONTROL "WINDOW-REMOVE".
      MOVE LI TO LISPOR.
      DISPLAY ELEPOR (LI) LINE 5 COL 20 LOW.


Preguntamos si todo es correcto y si es así nos dispondríamos a desarrollar el listado. Pero eso lo veremos en otro capítulo.
LISTA7.
      DISPLAY "TODO CORRECTO ?" LINE 7 COL 2.
      ACCEPT OP LINE 7 COL 23 PROMPT LOW NO BEEP
          ON EXCEPTION ESCA NEXT SENTENCE.
      DISPLAY SPACES LINE 7 SIZE 35.
      IF OP = "N" OR ESCA = 27 GO LISTA5.
      IF OP NOT = "S" GO LISTA7.
LISTA8.
      DISPLAY "PROXIMO CAPITULO, EL LISTADO"
          LINE 7 COL 2 LOW.
      ACCEPT OP LINE 2 COL 1 OFF NO BEEP.


Párrafo para abandonar el listado.
LISTAFIN.
      DISPLAY WIN (2) CONTROL "WINDOW-REMOVE".
      GO TRES.
Programa Agenda (Imagen 6)

Espero que os guste la idea de preseleccionar una serie de opciones antes de lanzar el listado, como veis, así nos podemos ahorrar muchos listados, ya que en uno solo, podemos obtener varios. En el próximo capítulo, veremos el desarrollo necesario para hacer realidad lo que hemos seleccionado en ésta ventana previa.

(1/2) Anterior |    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]