viernes, 21 de febrero de 2020

Excel - vídeos en youtube

Youtube es un pozo sin fondo para aprender Excel a través de los diferentes vídeos existentes en dicha plataforma. Para muestra un botón:

30 trucos de Excel que todos deben saber

Cómo armar un dashboard en Excel

Espero que os resulten interesantes estos ejemplos.

viernes, 7 de febrero de 2020

Cobol - cruce de ficheros

Veamos cómo es el cruce de ficheros.

La estructura de un programa Cobol (o el cualquier otro lenguaje) suele ser:

     INICIO
     TRATAMIENTO hasta FIN-FICHERO-ENTRADA
     FINAL

En el cruce tendríamos:

     INICIO
     TRATAMIENTO hasta FIN-FICHERO1 y FIN-FICHERO2
     FINAL

En el párrafo INICIO tendríamos la primera lectura de ambos ficheros. En cada  una de las lecturas se debe tener en cuenta lo siguiente:
  1. Si el file-status es 0 se debe mover la clave leída del fichero a CLAVE1 (si hemos leído del FICHERO1) o a CLAVE2 (si hemos leído del FICHERO2).
  2. Si el file-status es 10, no sólo hay que activar el correspondiente switch que indica que se ha llegado a final de fichero, sino que además hay que mover HIHG-VALUES a CLAVE1 (si hemos leído del FICHERO1) o a CLAVE2 (si hemos leído del FICHERO2).

En el párrafo TRATAMIENTO (que se ejecuta hasta que finalicen ambos ficheros) tendríamos la comparación de claves:

     EVALUATE TRUE
           WHEN CLAVE1 = CLAVE2
                  DISPLAY 'HAY CRUCE. CLAVE1: ' CLAVE1 '. CLAVE2: ' CLAVE2
                  PERFORM LEER-FICHERO2
           WHEN CLAVE1 < CLAVE2
                  DISPLAY 'CLAVE1 no existe en FICHERO2'
                  PERFORM LEER-FICHERO1
           WHEN CLAVE1 > CLAVE2
                  DISPLAY 'CLAVE2 no existe en FICHERO1'
                  PERFORM LEER-FICHERO2
           WHEN OTHER
                  CONTINUE
     END-EVALUATE

          Nota: Se pone WHEN OTHER, aunque no llegue a ejecutarse nunca, por-
          que por temas de calidad todo EVALUATE tiene que tener WHEN OTHER.

Espero que os sirva de ayuda si tenéis que hacer un programa de cruce en Cobol.