Simplesmente não entendi ao certo como funciona o REDEFINES. Poderiam explicar melhor a sua função?
Simplesmente não entendi ao certo como funciona o REDEFINES. Poderiam explicar melhor a sua função?
Rodrigo,
O redefines é utilizado para redefinir um campo com uma configuração diferente da original. Importante: O campo redefinido não pode ser maior que o original. Ambos devem ter o mesmo número de nível. Entre eles não pode haver a definição de outro campo com número de nível menor ou igual ao deles.
Exemplo
03 WS-ANO PIC X(36) VALUE ‘JANFEVMARABRMAIJUNJULAGOSETOUTNOVDEZ’. /// A variavel WS-ANO tem 36 posicoes ocupadas, onde de tres em tres estãos os meses do ano.
03 FILLER REDEFINES WS-ANO. 05 WS-MESES PIC X(03) OCCURS 12 TIMES. /// A variavel WS-MESES terá 12 ocorrencias, onde cada uma terá o tamanho de 03 posicoes e irá herdar o conjunto de tres em tres da variavel WS-ANO
Então , WS-MESES(02) terá o valor FEV
Supondo que o seu programa busca no sistema o mes atual, o mesmo vira em formato de numero. Considere que estamos em Maio e voltou 05. Então WS-MESES(mes-recebidodo sistema) trará MAI.
Obs:
05 WS-SEMESTRE PIC X(18) OCCURS 02 TIMES.
Blz ? Ivan