Imprimindo em duas colunas
Devemos formar uma matriz de nomes que ocorrem 108 vezes. Devemos ter o nome 1-54 em uma coluna da esquerda e os nomes 55-108 em uma coluna da direita. Depois de haver 108 nomes para uma página, inicializamos nossa matriz e começamos novamente. A saída para o meu código está mostrando os nomes 1-54 impressos e, em vez de estar na mesma página e ao lado dos nomes 1-54, os nomes 55-108 na coluna da direita, mas depois dos nomes 1-54. Qualquer pensamento seria muito apreciado.
Aqui está um pouco do meu código:
PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO '
READ NAMELIST-FILE-IN
AT END
MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
NOT AT END
PERFORM 200-PROCESS-ONE-RECORD
END-READ
END-PERFORM
CLOSE NAMELIST-FILE-IN
CLOSE NAMELIST-FILE-OUT
STOP RUN.
200-PROCESS-ONE-RECORD.
ADD 1 TO NAME-SUB
MOVE NAME-IN TO NAME-1 (NAME-SUB)
PERFORM 220-MOVE-RECORDS.
220-MOVE-RECORDS.
IF NAME-SUB <= 54
MOVE NAME-1 (NAME-SUB) TO LEFT-LABEL
MOVE SPACES TO RIGHT-LABEL
END-IF
IF NAME-SUB >= 55
MOVE NAME-1 (NAME-SUB) TO RIGHT-LABEL
MOVE SPACES TO LEFT-LABEL
END-IF
MOVE DETAIL-LINE TO NAMELIST-RECORD-OUT
WRITE NAMELIST-RECORD-OUT
AFTER ADVANCING 1 LINE
IF NAME-SUB >= 108
MOVE SPACES TO DETAIL-LINE
MOVE ZERO TO NAME-SUB
PERFORM 300-WRITE-HEADING
END-IF.
Eu codifiquei todas as entradas adequadas de WORKING-STORAGE para acomodar as informações. Você sabe se há algo errado com a maneira como estou escrevendo a linha de detalhes ou é como estou processando meus dados?