You are on page 1of 4

*&---------------------------------------------------------------------------------

---------*
*& PoolMóds. ZBASE_DE_TESTE_MP_LP
*&---------------------------------------------------------------------------------
---------*
*&
*&---------------------------------------------------------------------------------
---------*

INCLUDE zbase_de_teste_mp_lp_top. " Global Data

INCLUDE zbase_de_teste_mp_lp_o01. " PBO-Modules


INCLUDE zbase_de_teste_mp_lp_i01. " PAI-Modules
* INCLUDE ZBASE_DE_TESTE_MP_LP_F01. " FORM-Routines

*&---------------------------------------------------------------------------------
---------*
*& Include ZBASE_DE_TESTE_MP_LP_TOP - PoolMóds.
ZBASE_DE_TESTE_MP_LP
*&---------------------------------------------------------------------------------
---------*
PROGRAM zbase_de_teste_mp_lp.

DATA: vg_okcode(4) TYPE c, " Base


wa_display(38) TYPE c, " Workarea do
Display
wa_oper(1) TYPE c, " Workarea do
operador
wa_aux(38) TYPE c, " Workarea auxiliar
wa_aux2(38) TYPE c, " Workarea auxiliar
secundária

*&---------------------------------------------------------------------*
*& Include ZBASE_DE_TESTE_MP_LP_O01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_5000 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_5000 OUTPUT.
SET PF-STATUS 'STATUS5000'. " Status da
tela 5000

ENDMODULE.

*&---------------------------------------------------------------------------------
-----------------------*
*& Include ZBASE_DE_TESTE_MP_LP_I01
*&---------------------------------------------------------------------------------
-----------------------*
*&---------------------------------------------------------------------------------
-----------------------*
*& Module USER_COMMAND_5000 INPUT
*&---------------------------------------------------------------------------------
-----------------------*
* text
*----------------------------------------------------------------------------------
-----------------------*
MODULE user_command_5000 INPUT.

CASE sy-ucomm.

*//////////////////////////////////////////////////////////////////////////////////
////////////////////////

WHEN 'SAIR'.
LEAVE PROGRAM . " Botão SAIR

*//////////////////////////////////////////////////////////////////////////////////
////////////////////////

WHEN 'ZERO'. " Botão ZERO


IF wa_display NE 0.
CONCATENATE wa_display '0' INTO wa_display.
ENDIF.
MESSAGE 'ZERO' TYPE 'S'.

WHEN 'UM'. " Botão UM


CONCATENATE wa_display '1' INTO wa_display.
MESSAGE 'UM' TYPE 'S'.

WHEN 'DOIS'. " Botão DOIS


CONCATENATE wa_display '2' INTO wa_display.
MESSAGE 'DOIS' TYPE 'S'.

WHEN 'TRES'. " Botão TRES


CONCATENATE wa_display '3' INTO wa_display.
MESSAGE 'TRES' TYPE 'S'.

WHEN 'QUATRO'. " Botão QUATRO


CONCATENATE wa_display '4' INTO wa_display.
MESSAGE 'QUATRO' TYPE 'S'.

WHEN 'CINCO'. " Botão Cinco


CONCATENATE wa_display '5' INTO wa_display.
MESSAGE 'CINCO' TYPE 'S'.

WHEN 'SEIS'. " Botão SEIS


CONCATENATE wa_display '6' INTO wa_display.
MESSAGE 'SEIS' TYPE 'S'.

WHEN 'SETE'. " Botão SETE


CONCATENATE wa_display '7' INTO wa_display.
MESSAGE 'SETE' TYPE 'S'.

WHEN 'OITO'. " Botão OITO


CONCATENATE wa_display '8' INTO wa_display.
MESSAGE 'OITO' TYPE 'S'.

WHEN 'NOVE'. " Botão NOVE


CONCATENATE wa_display '9' INTO wa_display.
MESSAGE 'NOVE' TYPE 'S'.

*//////////////////////////////////////////////////////////////////////////////////
////////////////////////

WHEN 'SOMAR'. " Botão SOMAR


wa_aux = wa_display.
wa_oper = '+'.
CLEAR wa_display.

WHEN 'SUBTRAIR'. " Botão SUBTRAIR


wa_aux = wa_display.
wa_oper = '-'.
CLEAR wa_display.

WHEN 'MULTIPLICAR'. " Botão MULTIPLICAR


wa_aux = wa_display.
wa_oper = '*'.
CLEAR wa_display.

WHEN 'DIVIDIR'. " Botão DIVIDIR


wa_aux = wa_display.
wa_oper = '/'.
CLEAR wa_display.

WHEN 'PONTO'. " Botão PONTO


IF wa_display IS INITIAL.
CONCATENATE wa_display '0.' INTO wa_display.
ENDIF.

WHEN 'LIMPAR'. " Botão LIMPAR


CLEAR: wa_display, wa_aux, wa_aux2, wa_oper.

*//////////////////////////////////////////////////////////////////////////////////
////////////////////////

WHEN 'IGUAL'.
CASE wa_oper.

WHEN '+'.
wa_aux2 = wa_display.
CLEAR wa_display.
TRY.
wa_display = wa_aux + wa_aux2.
CLEAR: wa_aux, wa_aux2.
ENDTRY.

WHEN '-'.
CONDENSE wa_aux.
wa_aux2 = wa_display.
CLEAR wa_display.
TRY.
wa_display = wa_aux - wa_aux2.
CLEAR: wa_aux, wa_aux2.

ENDTRY.
IF wa_aux < wa_aux2 AND wa_aux IS NOT INITIAL AND wa_aux2 IS NOT INITIAL.
CONCATENATE wa_display '-' INTO wa_display.
ENDIF.

WHEN '*'.
wa_aux2 = wa_display.
CLEAR wa_display.
TRY.
wa_display = wa_aux * wa_aux2.
CLEAR: wa_aux, wa_aux2.
ENDTRY.

WHEN '/'.
wa_aux2 = wa_display.
CLEAR wa_display.
TRY.
wa_display = wa_aux / wa_aux2.
CLEAR: wa_aux, wa_aux2.
ENDTRY.
ENDCASE.
ENDCASE.
ENDMODULE.

You might also like