quinta-feira, 12 de maio de 2016

Mascaras de edição no COBOL

Olá!

Por meio do uso de mascaras de edição, é possível no COBOL a apresentar valores numéricos de formas variadas. Assim, neste post será demonstrado algumas dessas mascaras!

Primeiramente temos o valor 12732234 que será armazenado na variável GDA-NR-SMLC PIC  9(009), e posteriormente este valor será movimentado para as variáveis que estão definidas com a mascara.

As variáveis usadas para a demonstração do uso das mascaras de edição, são:
    * -- GUARDA O NUMERO PARA SIMULACAO DE APLICACAO DAS MASCARAS
       77 GDA-NR-SMLC                   PIC  9(009) VALUE ZEROS.
      *
      * -- GUARDA O NUMERO COM ZEROS A ESQUERDA E SINAL
       77 GDA-VL-COM-ZEROS              PIC  9(009) VALUE ZEROS.
      *
      * -- GUARDA O NUMERO SEM ZEROS A ESQUERDA E SINAL
      *    SOMENTE MOSTRA O SINAL QUANDO O NUMERO NEGATIVO
       77 GDA-VL-SEM-ZEROS              PIC --------9 VALUE ZEROS.
      *
      * -- GUARDA O NUMERO SEM ZEROS A ESQUERDA E SINAL
      *    MOSTRA O SINAL TAMBEM PARA OS NUMEROS POSITIVOS
       77 GDA-VL-SEM-ZEROS-SNL          PIC ++++++++9 VALUE ZEROS.
      *
      * -- GUARDA O NUMERO FORMATADO PARA A MASCARA DE DATA DD/MM/AAAA
       77 GDA-DATA                      PIC ZZ/ZZ/ZZZZ.
      *
      * -- GUARDA O NUMERO FORMATADO PARA O VALOR R$
       77 GDA-VALOR                     PIC -999.999,99.
      *
      * -- GUARDA O NUMERO FORMATADO PARA O VALOR R$ E SINAL
       77 GDA-VALOR-SNL                 PIC S9(09)V9(2).


Então, se executarmos um DISPLAY em cada variável, o formato que o valor 12732234 será apresentado, é:


  • DISPLAY GDA-VL-COM-ZEROS, apresenta: 012732234

Definição da variável: PIC 9(009)
Note que o valor 12732234 possui um "0" na frente. Pois, o valor é menor que o tamanho suportado por está variável, assim, as casas numéricas não usadas será apresentada com zero.



  • DISPLAY GDA-VL-SEM-ZEROS, apresenta: 12732234

Definição da variável: PIC --------9
Deste modo o valor não possui o zero na frente, e também não há sinalização. Sendo que se o valor fosse negativo, seria apresentado um sinal "-" de negativo para o valor.



  • DISPLAY GDA-VL-SEM-ZEROS-SNL, apresenta: +12732234

Definição da variável: PIC ++++++++9
Com essa mascara se o valor positivo será apresentado com o sinal "+" na frente do número. E se o valor negativo será apresentado com o sinal "-" na frente do número. De qualquer modo a sinalização do valor aparecerá.



  • DISPLAY GDA-DATA, apresenta: 12/73/2234

Definição da variável: PIC ZZ/ZZ/ZZZZ
Neste tipo de definição o valor será apresentado no formato de data DD/MM/AAAA.



  • DISPLAY GDA-VALOR, apresenta:  732.234,00

Definição da variável: PIC -999.999,99
Para apresentar o valor no formato de R$. Lembrando que com o uso de "-" na definição da variável somente aparecerá o sinal se o valor for negativo.



  • DISPLAY GDA-VALOR-SNL, apresenta:  +012732234.00

Definição da variável: PIC S9(09)V9(2)
Com está definição o valor será sinalizado para positivos e negativos, também apresentando os zeros a esquerda.


Como se trata de mascaras de edição, é uma boa pratica utiliza-las somente para a apresentação do valor final. Ou seja, não é comum usar variáveis definidas com algumas mascaras para realizar o processamento dos dados.

Para Ctrl + C dos códigos acesse aqui.
Consultar a relação de Termos e Abreviaturas acesse aqui.

Até o próximo post!