COBOL - Exemplos simples - SEARCH ALL - TABELA DESORDENADA - CHAVE NUMERICA



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

COBOL - Exemplos simples - SEARCH ALL - TABELA DESORDENADA - CHAVE NUMERICA

       IDENTIFICATION DIVISION.                                         
       PROGRAM-ID.      SEARCHALL.                                       
       AUTHOR.          DORNELLES CARLOS ALBERTO.                       
      *-----------------------------------------------------------------
      *  PROGRAMA      : SEARCH                                       
      *  OBJETIVO      : COMANDO SEARCH ALL COM TABELA DESORDENADA           
      *                : CHAVE NUMERICA                                 
      *  ANALISTA      : CARLOS ALBERTO DORNELLES                       
      *  DESENVOLVEDOR : CARLOS ALBERTO DORNELLES                       
      *  LINGUAGEM     : COBOL                                          
      *  MODO OPERACAO : BATCH                                          
      *-----------------------------------------------------------------
      *  VERSAO DD.MM.AAAA  HISTORICO        AUTOR                             
      *  ------ ----------  ---------------  ---------------------------                           
      *    001  20.06.2021  PROGRAMA INICIAL DORNELLES CARLOS ALBERTO                           
      *-----------------------------------------------------------------

      *-----------------------------------------------------------------
       ENVIRONMENT DIVISION.                                            
      *-----------------------------------------------------------------
       CONFIGURATION SECTION.                                           
       SPECIAL-NAMES.                                                   
                        DECIMAL-POINT IS COMMA.                         

      *-----------------------------------------------------------------
       DATA DIVISION.                                                   
      *-----------------------------------------------------------------

       WORKING-STORAGE SECTION.                                         
                                                                        
        01  WS-TABELA-PRODUTOS.                                           
           05 TAB-PRODUTOS.                                              
              10  FILLER       PIC X(021) VALUE "07BISCOITO           ".
              10  FILLER       PIC X(021) VALUE "08SABAO              ".
              10  FILLER       PIC X(021) VALUE "09SABONETE           ".
              10  FILLER       PIC X(021) VALUE "10PAPEL HIGIENICO    ".
              10  FILLER       PIC X(021) VALUE "11AGUA SANITARIA     ".
              10  FILLER       PIC X(021) VALUE "01ARROZ              ".
              10  FILLER       PIC X(021) VALUE "02FEIJAO             ".
              10  FILLER       PIC X(021) VALUE "03SAL                ".
              10  FILLER       PIC X(021) VALUE "04MACARRAO           ".
              10  FILLER       PIC X(021) VALUE "05AZEITE             ".
              10  FILLER       PIC X(021) VALUE "06CARNE              ".
              10  FILLER       PIC X(021) VALUE "12ALFACE             ".
              10  FILLER       PIC X(021) VALUE "13CHEIRO VERDE       ".
              10  FILLER       PIC X(021) VALUE "14REPOLHO            ".
              10  FILLER       PIC X(021) VALUE "15CAFE               ".
              10  FILLER       PIC X(021) VALUE "23MELAO AMARELO      ".
              10  FILLER       PIC X(021) VALUE "24SABAO EM PO        ".
              10  FILLER       PIC X(021) VALUE "25SHAMPOO            ".
              10  FILLER       PIC X(021) VALUE "16NESCAFE            ".
              10  FILLER       PIC X(021) VALUE "17PAO                ".
              10  FILLER       PIC X(021) VALUE "18MEXERICA           ".
              10  FILLER       PIC X(021) VALUE "19LARANJA            ".
              10  FILLER       PIC X(021) VALUE "20ABACATE            ".
              10  FILLER       PIC X(021) VALUE "21MAMAO PAPAIA       ".
              10  FILLER       PIC X(021) VALUE "22MAMAO FORMOSA      ".
              10  FILLER       PIC X(021) VALUE "26CREME RINSE        ".
              10  FILLER       PIC X(021) VALUE "27GEL DENTAL         ".
           05 TAB-PRODUTOS-R    REDEFINES  TAB-PRODUTOS.                  
              07  WS-CAJUGUDU  OCCURS 27 TIMES                          
                               ASCENDING KEY COD-PRODUTO                  
                               INDEXED BY IX-TAB.                       
                  10  COD-PRODUTO   PIC 9(002).                              
                  10  NOME-PRODUTO  PIC X(019).  
                            
       01  WS-AUXILIARES.                                               
           05 NAO-ACHOU-NADA        PIC 9(003) VALUE ZEROES.       
           05 WS-COD-PRODUTO        PIC 9(002) VALUE ZEROES.       
           05 VARIAVEL              PIC X(019) VALUE SPACES. 
           05 WS-X                  PIC 9(002) VALUE ZEROES. 

      *-----------------------------------------------------------------
       PROCEDURE DIVISION. 
      *-----------------------------------------------------------------

           MOVE ZEROES TO NAO-ACHOU-NADA                                
           MOVE 23 TO WS-COD-PRODUTO
           
           SEARCH ALL WS-CAJUGUDU                                        
                  AT END                                                
                     MOVE 1 TO NAO-ACHOU-NADA    
                WHEN COD-PRODUTO (IX-TAB) EQUAL WS-COD-PRODUTO 
                     MOVE NOME-PRODUTO (IX-TAB) TO VARIAVEL                           
           END-SEARCH                                                   

           IF  NAO-ACHOU-NADA EQUAL 0
               DISPLAY "ACHOU " WS-COD-PRODUTO " Nome do produto: " VARIAVEL 
           ELSE
               DISPLAY "NAO ACHOU - Código do produto - "  WS-COD-PRODUTO
           END-IF. 

	   STOP RUN.

           NAO ACHOU - Código do produto - 23
           MOVE 07 TO WS-COD-PRODUTO
           NAO ACHOU - Código do produto - 07