CONSTANTS... CHANGING....

sábado, 31 de março de 2012 0 comentários

Comando: CONSTANTS

Descrição:
Usado para criar variáveis constantes, variáveis que não devem ser alteradas, exemplo: valor do PI.

Comando: CHANGING

Descrição:
Variávei local que é usada como variávei global.

Exemplo:
(com comentarios)

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS:
               p1alu1  TYPE DECIMALS 2,
               p2alu1  TYPE DECIMALS 2,
               p3alu1  TYPE DECIMALS 2,
               p4alu1  TYPE DECIMALS 2.
SELECTION-SCREEN END OF BLOCK b1.

*Variavel global da media
DATA V_media TYPE DECIMALS 2.

*--------------------------------------*
***Contante                            *
*--------------------------------------*

"Constante nota provado
CONSTANTSc_Apro type DECIMALS value '7.0'.

"Constante nota reprovado
CONSTANTSc_Repr type DECIMALS value '5.5'.


START-OF-SELECTION.
*--------------------------------------*
*Chamando o PERFORM de Calcular
*media das notas Posso colocar 
*um valor fixo no using EX using 7.
*--------------------------------------*
  PERFORM f_calmedi USING p1alu1
                          p2alu1
                          p3alu1
                          p4alu1
                 CHANGING V_media.

*--------------------------------------*
*Chamando o FORM que da o resultado 
*se o aluno foi aprovado ,reprovado
*e recuperacao.
*--------------------------------------*
  PERFORM f_resmedi.


END-OF-SELECTION.

*&-------------------------------------*
*&      Form  f_calMedi
*&-------------------------------------*
*       Calcula a media das notas
*--------------------------------------*
*      -->P1         nota 1
*      -->P2         nota 2
*      -->P3         nota 3
*      -->P4         nota 4
*--------------------------------------*
FORM f_calmedi USING p1 TYPE p
                     p2 TYPE p
                     p3 TYPE p
                     p4 TYPE p
            CHANGING p_media type p.

  p_media p1 + p2 + p3 + p4 4.

ENDFORM.                    "f_calMedi


*--------------------------------------*
*&      Form  f_ResMedi
*--------------------------------------*
*Da o resultado se o aluno foi aprovado,
*reprovado e recuperacao
*--------------------------------------*
FORM f_resmedi.

  IF V_media >= c_Apro.
    WRITE:
              'Aprovado, Media = ',
               V_media COLOR 5.
  ELSEIF V_media < c_Repr.
    WRITE:
              'Reprovado, Media = ',
               V_media COLOR 6.

  ELSE.

    WRITE:
              'Recuperacao, Media = ',
               V_media COLOR 3.


  ENDIF.
ENDFORM.                    "f_ResMedi

0 comentários:

Postar um comentário