|
 |
 |
8.- Opción de Listado
página(s) : 2/2 (1877 palabras totales en este texto) (20765 Lecturas) 
»»
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. |
|
 |
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) | |
|
|