Menu principal                 [Fechar]


CICS - Definição de telas - BASIC MAPPING SUPPORT ( BMS )


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF.

CICS - Definição de telas - BASIC MAPPING SUPPORT ( BMS )

Para a execução de um programa on-line, normalmente há uma tela, onde o usuario interage com o terminal.
Nesta tela ele digita os dados e recebe as informações que necessita.

Esta tela é definida pelo programador, utilizando os recursos oferecidos pelo BASIC MAPPING SUPPORT ( BMS ), que tem a função de fazer o interface entre o programa de aplicação e o 'TERMINAL CONTROL PROGRAM ( TCP )'.

O BMS oferece algumas vantagens tais como, independência de dispositivos e independência de formato de dados.

O BMS trabalha com dois tipos de mapas:

1 - Mapa físico ( MAPSET ) que é catalogado na CIL em formato de 'PHASE'. E' constituído por caracteres de controle, constantes e dados variáveis do aplicativo.
2 - Mapa lógico ( MAP ) catalogado na SOURCE ( BIBLIOTECA DE DADOS ) em formato de 'BOOK'. e' constituído somente pelos dados variáveis.

O BMS na entrada remove os caracteres de controle e transfere somente os dados para o programa de aplicação. na saida, o BMS obtem os dados variáveis do programa de aplicação e intercala com os caracteres de controle mais as constantes do mapa.

A definição de mapas físicos e lógicos é feita utilizando-se 'MACROS' que seguem a regra 'ASSEMBLER' para a sua codificação.

Para a codificação, deve-se respeitar algumas regras de sintaxe, as quais trancreve-se abaixo:

O nome dos mapas e campos devem comecar na coluna 1 e a codificação das macros, apesar de poder começar na coluna 2, costuma-se codificar começando na coluna 10. costuma-se, tambem, codificar os parâmetros necessários para cada macro, a partir da coluna 16, exceto na primeira linha onde comeca-se a definir na coluna 17.

A codificaçao pode ir até a coluna 71.

A coluna 72 é reservada para ser usada quando deseja-se continuar a definição de uma macro em uma outra linha, sendo que, a linha a ser continuada deve ter, na coluna 72, um caracter de continuação diferente de branco e a linha de continuação deve ter a sua codificação iniciada na coluna 16.



          MACRO   DFHMSD
			 
          Esta macro é utilizada para definir o conjunto de mapas ( MAPSET ). 
          Um MAPSET pode conter 'um ou mais' mapas.

....+....1....+....2....+....3....+....4....+....5....+....6....+....7..

LABEL    DFHMSD TYPE=(MAP/DSECT/FINAL),                                *
               LANG=(ASM/COBOL/PL/I),                                  *
               TIOAPFX=(YES/NO),                                       *
               MODE=(IN/OUT/INOUT),                                    *
               STORAGE=AUTO,                                           *
               CTRL=OPCOES,                                            *
               TERM=MODELO,                                            *
               DATA=(FIELD/BLOCK)

          Parâmetros para a macro DFHMSD:

          LABEL    : deve ser especificado o nome do MAPSET, com, no máximo 7 caracteres

          TYPE     : MAP   - criar mapa fásico.
                     DSECT - criar mapa lógico.
                     FINAL - encerra a definição do conjunto de mapas.

          LANG     : ASM   - será gerado o mapa lógico em ASSEMBLER ( DEFAULT ).
                     COBOL - será gerado o mapa lógico em COBOL.
                     PL/I  - será gerado o mapa lógico em PL/I.

          TIOAPFX  : YES   - indica que deve ser reservada uma área de 12 bytes no início do mapa,
                             para o prefixo da TIOA ( TERMINAL	INPUT  OUTPUT  AREA ). Nesta  área
                             existem caracteres de controle que um programa  em  COMMAND LEVEL não 
                             pode utilizar.
                     NO    - sem bytes de controle ( DEFAULT ).

          MODE     : indica o tipo de utilização do MAPSET. Também será utilizado na geração do 
                     mapa lógico.
                     IN    - indica que qualquer mapa do MAPSET somente poderá ser  recebido  pelo
                             programa de aplicação.
                     OUT   - Indica que qualquer mapa do MAPSET somente poderá ser  enviado   pelo
                             programa de aplicação.
                     INOUT - Indica que o programa de aplicação poderá receber  e  enviar qualquer
                             mapa do MAPSET.

          STORAGE  : AUTO  - Será alocada automaticamente uma área para cada mapa  do  MAPSET.  Se
                             este parâmetro nao for especificado, os mapas dentro de um  MAPSET  
                             serao 'redefinidos'.

          CTRL     : Define as caracteristicas a serem aplicadas ao terminal quando do envio de 
                     qualquer mapa do MAPSET.
                     ALARM  - emite o sinal sonoro ( alarme ) ao enviar o mapa.
                     FREEKB - destrava o teclado logo apos o envio do mapa para permitir ao opera-
                              dor entrar com os dados.
                     FRSET  - restaura o MDT (MODIFIED DATA TAG) de todos os campos variaveis do 
                              mapa, ou seja, os dados variaveis do mapa sempre serao transmitidos 
                              para o programa de aplicacao, mesmo que o operador nao tenha 
                              'alterado' nenhum dado.

          TERM     : MODELO - modelo do terminal (3270 / 3270-2 /	3270-4, etc)

          DATA     : Especifica o formato dos dados FIELD  - area de trabalho em formato de campos.

                              formato:

                              +----------------+
                              I LL I A I DADOS I
                              +----------------+

                              onde:  LL - tamanho do campo ( 2 bytes  binarios - HALF -  WORD - 
                                     PIC S9(04) COMP.
                                     A  - byte de atributo do campo
                     BLOCK  - Área de trabalho em formato de bloco. seu uso nao É recomendado.
           



          

          MACRO   DFHMDI
			 

          Esta macro é utilizada para definir um mapa dentro de um conjunto de mapas.

....+....1....+....2....+....3....+....4....+....5....+....6....+....7..

LABEL    DFHMDI SIZE=(LINHAS,COLUNAS),                                 *
               LINE=LINHA,                                             *
               COLUMN=COLUNA,                                          *
               JUSTIFY=(LEFT/RIGHT,FIRST/LAST),                        *
               HEADER=YES/TRAILER=YES,                                 *
               TIOAPFX=(YES/NO)

          Parâmetros para a macro DFHMDI:

          LABEL    : Deve ser especificado o nome do mapa lógico, com, no máximo 7 caracteres.

          SIZE     : Especifica as dimensões do mapa, e termos de linhas e colunas.
                     LINHAS  - número máximo de linhas do mapa.
                     COLUNAS - número máximo de colunas do mapa.

          LINE     : Especifica qual é a linha inicial do mapa no terminal.

          COLUMN   : Especifica qual é a coluna inicial do mapa no terminal.

          JUSTIFY  : Especifica qual é o alinhamento do mapa:
                     LEFT    - O alinhamento do mapa será a esquerda ( DEFAULT ).
                     RIGHT   - O alinhamento do mapa será a direita.

                     FIRST   - Especifica que o mapa é para ser posicionado como o primeiro mapa de uma nova tela.

                     LAST    - Especifica que o mapa é para ser posicionado no final da tela que está sendo montada.

          HEADER   : Especifica que o mapa é um mapa de cabeçalho. Deve ser usado em conjunto com a opção
                     'JUSTIFY=FIRST'. Usado em paginação.

          TRAILER  : Especifica que o mapa é um mapa de rodapé. Deve ser usado em conjunto com a opção
                     'JUSTIFY=LAST'. Usado em paginação.

          TIOAPFX  : YES   - Indica que deve ser reservada uma área de 12 bytes no inicio do mapa, para o prefixo  
                             da TIOA ( TERMINAL INPUT OUTPUT AREA ). Nesta área existem caracteres de controle que
                             um programa em COMMAND LEVEL não pode utilizar.
                     NO    - Sem bytes de controle ( DEFAULT )

			 
          

          MACRO   DFHMF
			 

          Esta macro é utilizada para definir os campos variáves e as constantes dentro do mapa.

....+....1....+....2....+....3....+....4....+....5....+....6....+....7..

LABEL    DFHMDF POS=(LINHA,COLUNA),                                    *
               LENGTH=TAMANHO,                                         *
               ATTRB=LISTA DE ATRIBUTOS,                               *
               INITIAL='CONSTANTE',                                    *
               JUSTIFY=(LEFT/RIGHT,BLANK/ZERO),                        *
               GRPNAME=ITEM DE GRUPO,                                  *
               OCCURS=NNN,                                             *
               PICIN='MASCARA',                                        *
               PICOUT='MASCARA'

          Parâmetros para a macro DFHMDF:

          LABEL    : Deve ser especificado o nome do campo, com, no máximo 7 caracteres. Se o label for  omitido, 
                     o campo nao poderá ser acessado pelo programa de aplicação, ou seja, será  definido apenas 
                     uma constante para o mapa.

          POS      : Especifica a posição do atributo do campo em relação ao mapa e não a posicao fisica. Em todas 
                     as macros DFHMDF de um determinado mapa, as posições dos campos devem estar definidos em uma 
                     sequencia crescente, sendo definidos de cima para baixo e da esquerda para a direita.

          LENGTH   : Especifica o tamanho do campo ( nao considerar a posição utilizada pelo atributo ). O tamanho 
                     pode variar de 1 a 256 caracteres.

          ATTRB    : Especifica as caracteristicas do campo. Somente para terminais do tipo 3270-X. Para determinar 
                     as caracteristicas do campo, os atributos podem ser combinados
                     ASKIP   - Provoca um salto automático do CURSOR, ou seja, não é possível o operador entrar com  
                               dados neste campo. Pode ser utilizado para definir constantes. O campo fica protegido 
                               e com brilho normal.
                     PROT    - O campo fica protegido.
                     UNPROT  - O campo fica disponível para a entrada de dados. É UTilizado para definir campos variáveis. 
                               O campo	fica desprotegido, com brilho normal e alfanumerico.
                     NUM     - O campo fica disponível para a entrada de dados numéricos e o hífen ( - ). É utilizado em  
                               conjunto com o atributo UNPROT. O campo fica desprotegido, com brilho normal e numérico.
                     BRT     - O campo fica brilhante.
                     NORM    - O campo fica com brilho normal.
                     DRK     - Indica que embora o campo exista na tela, não será exibido, mesmo que existam dados.  
                               É utilizado, por exemplo para definir campos onde será digitada uma senha.
                     IC      - Indica que o CURSOR ficará posicionado no campo após o envio do	mapa. Caso haja mais de 
                               um IC, o CURSOR ficará posicionado no campo em que estiver o ultimo IC. Se este parâmetro 
                               for omitido, o CURSOR será posicionado na primeira linha e na primeira coluna.
                     FSET    - Liga o MDT, ou seja, o campo será transmitido no envio e na recepção do mapa, independente 
                               se o campo foi ou nao alterado. O DEFAULT é o MDT desligado.

          Observacao - Qualquer um dos atributos poderá ser alterado pelo programa de aplicação. 
                     - Se o parâmetro ATTRB for omitido, o campo será considerado com o atributo ASKIP.
                     - Se qualquer das opções de ATTRB for codificada, o campo terá as opções de UNPROT e NORM em 
                       acréscimo ao atributo especificado.

          INITIAL  : Define um conteudo inicial para o campo.

          JUSTIFY  : Define o alinhamento/preenchimento do campo
                     LEFT   - O alinhamento do campo será a esquerda.
                     RIGHT  - O alinhamento do campo será a direita.
                     BLANK  - O campo será preenchido com brancos.
                     ZERO   - O campo será preenchido com zeros.
          Observação - O DEFAULT para JUSTIFY é:
                       RIGHT, ZERO se o campo for numérico
                       LEFT, BLANK se o campo for alfanumérico

          GRPNAME  : Permite que um campo seja subdividido e manipulado pelo programa de aplicação, ou seja, permite 
                     que seja definido um item de grupo com itens elementares. As caracterpisticas físicas do item de 
                     grupo são igualmente aplicáveis a todos os itens elementares. Todos os itens elementares do item  
                     de grupo devem ter os mesmos parâmetros, caso isto não ocorra será considerado as características 
                     do primeiro item elementar deste item de grupo.

          OCCURS   : Define n campos de uma só vez. Semelhante a cláusula OCCURS do COBOL. este parâmetro não pode ser 
                     utilizado em conjunto com o parâmetro 'GRPNAME' na mesma macro DFHMDF.

          PICIN    : Define uma máscara de entrada de dados para o campo.

          PICOUT   : Define uma máscara de saida de dados para o campo.

          OBSERVACAO - Caso seja especificado os parâmetros PICIN e PICOUT para um mesmo campo, as máscaras devem ser do 
                       mesmo tamanho quanto ao número de posições ocupadas.



          Exemplo de definicao de MAPSET


....+....1....+....2....+....3....+....4....+....5....+....6....+....7..

XZ00001  DFHMSD TYPE=&SYSPARM,                                         *
               LANG=COBOL,                                             *
               CTRL=(FREEKB,FRSET,ALARM),                              *
               MODE=INOUT,                                             *
               STORAGE=AUTO
*
MZ0001A  DFHMDI SIZE=(22,80),LINE=1,COLUMN=1,JUSTIFY=(LEFT,FIRST)
TRANS    DFHMDF POS=(01,01),LENGTH=04,ATTRB=(ASKIP,BRT,FSET),          *
               INITIAL='CURS'
SALVA    DFHMDF POS=(01,08),LENGTH=04,ATTRB=(ASKIP,DRK)
         DFHMDF POS=(01,20),LENGTH=40,ATTRB=(ASKIP,BRT),               *
               INITIAL='***  EXEMPLO DE DEFINICAO DE MAPSET  ***'
DIA      DFHMDF POS=(01,70),LENGTH=02,ATTRB=ASKIP,GRPNAME=DATA
MES      DFHMDF POS=(01,72),LENGTH=02,GRPNAME=DATA
ANO      DFHMDF POS=(01,74),LENGTH=02,GRPNAME=DATA
         DFHMDF POS=(05,01),LENGTH=10,ATTRB=ASKIP,INITIAL='COD. ALUNO'
         DFHMDF POS=(05,15),LENGTH=13,ATTRB=ASKIP,                     *
               INITIAL='NOME DO ALUNO'
         DFHMDF POS=(05,39),LENGTH=29,ATTRB=(ASKIP,BRT),               *
               INITIAL='NOTA1 NOTA2 NOTA3 NOTA4 NOTA5'
CODAL    DFHMDF POS=(07,01),LENGTH=05,ATTRB=(UNPROT,NUM)
         DFHMDF POS=(07,07),LENGTH=01,ATTRB=ASKIP,INITIAL=' '
NOMEAL   DFHMDF POS=(07,15),LENGTH=20,ATTRB=ASKIP
NOTAS    DFHMDF POS=(07,40),LENGTH=05,ATTRB=ASKIP,OCCURS=5,            *
               PICOUT='ZZ9,9'
         DFHMDF POS=(22,21),LENGTH=40,ATTRB=(PROT,BRT),                *
               INITIAL='PF3   RETORNAR                PA2   SAIR'
*
         DFHMSD TYPE=FINAL
         END


          BOOK retornado com a compilação do MAPSET

         1         2         3         4         5         6         7        8
1234567890123456789012345678901234567890123456789012345678901234567890123456780

       01       MZ0001AI.
           02   FILLER          PIC  X(012).
           02   TRANSL    COMP  PIC S9(004).
           02   TRANSF          PIC  X(001).
           02   FILLER          REDEFINES TRANSF.
             03 TRANSA          PIC  X(001).
           02   TRANSI          PIC  X(004).
           02   SALVAL    COMP  PIC S9(004).
           02   SALVAF          PIC  X(001).
           02   FILLER          REDEFINES SALVAF.
             03 SALVAA          PIC  X(001).
           02   SALVAI          PIC  X(004).
           02   DATAL     COMP  PIC S9(004).
           02   DATAF           PIC  X(001). 
           02   FILLER          REDEFINES DATAF.
             03 DATAA           PIC  X(001).
           02   DATAI.
             03 DIAI            PIC  X(002).
             03 MESI            PIC  X(002).
             03 ANOI            PIC  X(002).
           02   CODALL    COMP  PIC S9(004).
           02   CODALF          PIC  X(001).
           02   FILLER          REDEFINES CODALF.
             03 CODALA          PIC  X(001).
           02   CODALI          PIC  X(005).
           02   NOMEALL   COMP  PIC S9(004).
           02   NOMEALF         PIC  X(001).
           02   FILLER          REDEFINES NOMEALF.
             03 NOMEALA         PIC  X(001).
           02   NOMEALI         PIC  X(020).
           02   NOTASD          OCCURS 5 TIMES.
             03 NOTASL    COMP  PIC S9(004).
             03 NOTASF          PIC  X(001).
             03 NOTASI          PIC  X(005).

       01       MZ0001AO        REDEFINES MZ0001AI.
           02   FILLER          PIC  X(012).
           02   FILLER          PIC  X(003).
           02   TRANSO          PIC  X(004).
           02   FILLER          PIC  X(003).
           02   SALVAO          PIC  X(004).
           02   FILLER          PIC  X(003).
           02   DATAO.
             03 DIAO            PIC  X(002).
             03 MESO            PIC  X(002).
             03 ANOO            PIC  X(002).
           02   FILLER          PIC  X(003).
           02   CODALO          PIC  X(005).
           02   FILLER          PIC  X(003).
           02   NOMEALO         PIC  X(020).
           02   DFHMS1          OCCURS 5 TIMES.
             03 FILLER          PIC  X(002).
             03 NOTASA          PIC  X(001).
             03 NOTASO          PIC  ZZ9,9.


                                       Explicação da geração do mapa lógico

      Para cada macro DFHMDI codificada é criado em COBOL, um NIVEL 01, com o label especificado na macro, acrescido
      do sufixo 'I' se for usada a opção 'MODE=IN' ou acrescido  do sufixo 'O' se for usada a opção 'MODE=OUT'.

      Para o MAPSET em que foi especificado 'MODE=INOUT', são gerados DOIS NIVEIS 01, um com o sufixo  'I' e outro
      com o sufixo 'O'. O segundo NIVEL 01 é uma redefinição do primeiro.

      Para cada macro dfhmdf codificada são criados UM NIVEL 02 e UM NIVEL 03 com o label especificado na macro 
      acrescido com sufixos específicos. Notar que o campo só será gerado caso seja codificado na macro um label.

      No NIVEL 02 foi gerado um campo com o label especificado acrescido do sufixo 'L' para identificar o tamanho do 
      campo. Foi tambem gerado um campo com o label especificado acrescido do sufixo 'I' para recepção de dados do campo.

      No NIVEL 03 foi gerado um campo com o label especificado acrescido do sufixo 'A' para identificar o atributo
      do campo.

      A area MZ0001AO é uma redefinição da área MZ0001AI, por ter sido especificado na macro DFHMSD o parâmetro
      'MODE=INOUT'.

      Para cada macro DFHMDF que possui um label especificado, foi gerado um campo de tamanho (SUFIXO L), um campo de
      atributo (SUFIXO A) e um campo de dados (SUFIXO I E/OU O).

      Observar que foi gerado o item de grupo 'DATAI' em virtude de termos codificado o parâmetro 'GRPNAME=DATA' na
      macro DFHMDF dos campo DIA, MES E ANO.

      Observar que foi gerado uma tabela 'NOTASD' em virtude de termos codificado o parâmetro 'OCCURS=5' no campo  
      'NOTAS'. Neste, o sufixo do item de grupo da tabela será 'D' ao inves de 'I'.



          Para cada campo foram gerados:

          LABEL + SUFIXO L - Nessa área será colocado pelo BMS, o tamanho do campo ( LENGTH ), ou seja, quantas 
                             posições foram tecladas pelo operador. O campo com  sufixo l é também usado para o 
                             posicionamento do CURSOR, bastando para isso movimentar -1 ( menos um ) para o mesmo.

          LABEL + SUFIXO F - Essa área é um byte de flag. Usado pelo CICS para saber se o campo foi alterado ou nao.

          LABEL + SUFIXO A - Essa area é utilizada pelo programa de aplicação para alterar o atributo do campo  
                             ( ATTRIBUTE ), isto é, quando deseja-se um atributo diferente do que foi especificado 
                             na codificação da macro DFHMDF.

          LABEL + SUFIXO I - Essa area é utilizada pelo programa de aplicação para trabalhar com os dados de entrada 
                             ( INPUT ).

          LABEL + SUFIXO O - Essa area é utilizada pelo programa de aplicação para trabalhar com os dados de saida 
                             ( OUTPUT ), sendo esta area uma redefinição da area de sufixo 'I'.
				

A seguir estão os atributos que pode-se mover para o campo de sufixo 'A' pelo programa de aplicação. Para ter estes campos no programa deve-se copiar o layout catalogado 'DFHBMSCA'. 1 2 3 4 5 6 7 8 1234567890123456789012345678901234567890123456789012345678901234567890123456780 01 DFHBMSCA. 02 DFHBMPEM PIC X(001) VALUE IS '.'. 02 DFHBMPNL PIC X(001) VALUE IS '.'. 02 DFHBMASK PIC X(001) VALUE IS '0'. 02 DFHBMUNP PIC X(001) VALUE IS ' '. 02 DFHBMUNN PIC X(001) VALUE IS '&'. 02 DFHBMPRO PIC X(001) VALUE IS '-'. 02 DFHBMBRY PIC X(001) VALUE IS 'H'. 02 DFHBMDAR PIC X(001) VALUE IS '<'. 02 DFHBMFSE PIC X(001) VALUE IS 'A'. 02 DFHBMPRF PIC X(001) VALUE IS '/'. 02 DFHBMASF PIC X(001) VALUE IS '1'. 02 DFHBMASB PIC X(001) VALUE IS '8'. 02 DFHBMEOF PIC X(001) VALUE IS '.'. 02 DFHBMDET PIC X(001) VALUE IS '.'. 02 DFHBMPSO PIC X(001) VALUE IS '.'. 02 DFHBMPSI PIC X(001) VALUE IS '.'. 02 DFHSA PIC X(001) VALUE IS '.'. 02 DFHCOLOR PIC X(001) VALUE IS '.'. 02 DFHPS PIC X(001) VALUE IS '.'. 02 DFHHLT PIC X(001) VALUE IS '.'. 02 DFH3270 PIC X(001) VALUE IS '.'. 02 DFHVAL PIC X(001) VALUE IS 'A'. 02 DFHOUTLN PIC X(001) VALUE IS 'B'. 02 DFHBKTRN PIC X(001) VALUE IS '.'. 02 DFHALL PIC X(001) VALUE IS '.'. 02 DFHERROR PIC X(001) VALUE IS '.'. 02 DFHDFT PIC X(001) VALUE IS '.'. 02 DFHDFCOL PIC X(001) VALUE IS '.'. 02 DFHBLUE PIC X(001) VALUE IS '1'. 02 DFHRED PIC X(001) VALUE IS '2'. 02 DFHPINK PIC X(001) VALUE IS '3'. 02 DFHGREEN PIC X(001) VALUE IS '4'. 02 DFHTURQ PIC X(001) VALUE IS '5'. 02 DFHYELLO PIC X(001) VALUE IS '6'. 02 DFHNEUTR PIC X(001) VALUE IS '7'. 02 DFHBASE PIC X(001) VALUE IS '.'. 02 DFHDFHI PIC X(001) VALUE IS '.'. 02 DFHBLINK PIC X(001) VALUE IS '1'. 02 DFHREVRS PIC X(001) VALUE IS '2'. 02 DFHUNDLN PIC X(001) VALUE IS '4'. 02 DFHMFIL PIC X(001) VALUE IS '.'. 02 DFHMENT PIC X(001) VALUE IS '.'. 02 DFHMFE PIC X(001) VALUE IS '.'. 02 DFHUNNOD PIC X(001) VALUE IS '('. 02 DFHUNIMD PIC X(001) VALUE IS 'I'. 02 DFHUNNUM PIC X(001) VALUE IS 'J'. 02 DFHUNINT PIC X(001) VALUE IS 'R'. 02 DFHUNNON PIC X(001) VALUE IS ')'. 02 DFHPROTI PIC X(001) VALUE IS 'Y'. 02 DFHPROTN PIC X(001) VALUE IS '%'. 02 DFHMT PIC X(001) VALUE IS '.'. 02 DFHMFT PIC X(001) VALUE IS '.'. 02 DFHMET PIC X(001) VALUE IS '.'. 02 DFHMFET PIC X(001) VALUE IS '.'. 02 DFHDFFR PIC X(001) VALUE IS '.'. 02 DFHLEFT PIC X(001) VALUE IS '.'. 02 DFHOVER PIC X(001) VALUE IS '.'. 02 DFHRIGHT PIC X(001) VALUE IS '.'. 02 DFHUNDER PIC X(001) VALUE IS '.'. 02 DFHBOX PIC X(001) VALUE IS '.'. 02 DFHSOSI PIC X(001) VALUE IS '.'. 02 DFHTRANS PIC X(001) VALUE IS '0'. 02 DFHOPAQ PIC X(001) VALUE IS '.'.



Volta para o início da página

Volta a página anterior

Volta ao Menu Principal