1
resposta

IF WRK-OPCAO NOT EQUAL 'X' Não apareceu a mensagem no meu display.

IF WRK-OPCAO NOT EQUAL 'X' Não apareceu a mensagem no meu display.

No exemplo do prof Ivan, ele colcou 'R' e apareceu a mensagem: ' DISPLAY 'ENTRE COM A OPCAO CORRETA' Não encontrei diferença entre meu código e o do professor.

  *******************************
   ENVIRONMENT DIVISION.
   DATA DIVISION.

   WORKING-STORAGE SECTION.
   77 WRK-OPCAO  PIC X(1).
   77 WRK-MODULO PIC X(25).
   77 WRK-TECLA  PIC X(1).

   SCREEN SECTION.
   01 TELA.
       05 LIMPA-TELA.
           10 BLANK SCREEN.
           10 LINE 01 COLUMN 01 PIC X(20) ERASE EOL
               BACKGROUND-COLOR 3.
           10 LINE 01 COLUMN 40 PIC X(20)
               BACKGROUND-COLOR 3 FOREGROUND-COLOR 0
                       FROM 'SISTEMA DE CLIENTES'.

           10 LINE 02 COLUMN 01 PIC X(25) ERASE EOL
               BACKGROUND-COLOR 1 FROM WRK-MODULO.

   01 MENU.
       05 LINE 07 COLUMN 15 VALUE '1 - INCLUIR'.
       05 LINE 08 COLUMN 15 VALUE '2 - CONSULTAR'.
       05 LINE 09 COLUMN 15 VALUE '3 - ALTERAR'.
       05 LINE 10 COLUMN 15 VALUE '4 - EXCLUIR'.
       05 LINE 11 COLUMN 15 VALUE '5 - RELATORIO'.
       05 LINE 12 COLUMN 15 VALUE 'X - SAIDA'.
       05 LINE 13 COLUMN 15 VALUE 'OPCAO......: ' .
       05 LINE 13 COLUMN 28 USING WRK-OPCAO.

   PROCEDURE DIVISION.
   0001-PRINCIPAL SECTION.
       PERFORM 1000-INICIAR.
       PERFORM 2000-PROCESSAR.
       PERFORM 3000-FINALIZAR.
       STOP RUN.

   1000-INICIAR.
       DISPLAY TELA.
       ACCEPT MENU.
   2000-PROCESSAR.
       EVALUATE WRK-OPCAO
         WHEN 1
           PERFORM 5000-INCLUIR
         WHEN 2
           CONTINUE
         WHEN 3
           CONTINUE
         WHEN 4
           CONTINUE
         WHEN 5
           CONTINUE
         WHEN OTHER
           IF WRK-OPCAO NOT EQUAL 'X'
               DISPLAY 'ENTRE COM A OPCAO CORRETA'
           END-IF
       END-EVALUATE.

   3000-FINALIZAR.
         CONTINUE.

   5000-INCLUIR.
         MOVE 'MODULO - INCLUSAO ' TO WRK-MODULO.
         DISPLAY TELA.
         ACCEPT WRK-TECLA AT 1620.
1 resposta

Thiago.

Como o seu codigo ainda não está completo, nada segura a mensagem na tela, entao quando voce escolhe uma opcao que não X ele pelo FLUXO encerrra a execucao e você não ve a mensagem. Faca essa alteração:

IF WRK-OPCAO NOT EQUAL 'X' DISPLAY 'ENTRE COM A OPCAO CORRETA' ACCEPT WRK-TECLA AT 1620 END-IF

Ivan

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software