You are on page 1of 2

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

*& Module Pool ZVM_STUDENT_RESULT


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

PROGRAM zvm_student_result.

*** Declaration of varirables


DATA: eng TYPE int2,
math TYPE int2,
sci TYPE int2,
soc TYPE int2,
hin TYPE int2,
tel TYPE int2,
tot TYPE int2,
div TYPE c LENGTH 30,
grd TYPE c LENGTH 2,
remark TYPE c LENGTH 50.
*&---------------------------------------------------------------------*
*& Module STATUS_1000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_1000 OUTPUT.
SET PF-STATUS 'ZSTATUS'.
* SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_1000 OUTPUT


*&---------------------------------------------------------------------*
*& Module USER_COMMAND_1000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_1000 INPUT.

CASE sy-ucomm.
WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'TOTL' OR ' '.
tot = eng + math + sci + soc + hin + tel.
PERFORM validate_fields.
IF eng LT '35' OR math LT '35' OR sci LT '35' OR soc LT '35' OR hin LT '35'
OR tel LT '35'.
remark = 'Really poor, needs to work really hard'.
ENDIF.
IF tot GE '220' AND tot LT '500' AND eng GT '35' AND math GT '35' AND sci GT
'35' AND soc GT '35' AND hin GT '35' AND tel GT '35'.
remark = 'Average, needs to improve grades'.
ENDIF.
IF tot GE '500' AND eng GT '35' AND math GT '35' AND sci GT '35' AND soc GT
'35' AND hin GT '35' AND tel GT '35'.
remark = 'Excellent..!! Keep it up'.
ENDIF.
IF tot GE '550' AND eng GT '35' AND math GT '35' AND sci GT '35' AND soc GT
'35' AND hin GT '35' AND tel GT '35'.
remark = 'Outstanding..!!!!'.
ENDIF.

WHEN 'DIVI'.
IF eng LT '35' OR math LT '35' OR sci LT '35' OR soc LT '35' OR hin LT '35'
OR tel LT '35' OR tot LT '210'.
div = 'FAIL'.
ENDIF.
IF tot GT '220' AND tot LT '500' AND eng GT '35' AND math GT '35' AND sci GT
'35' AND soc GT '35' AND hin GT '35' AND tel GT '35'.
div = 'AVERAGE'.
ENDIF.
IF tot GE '500' AND eng GT '35' AND math GT '35' AND sci GT '35' AND soc GT
'35' AND hin GT '35' AND tel GT '35'.
div = 'FIRST CLASS'.
ENDIF.
IF tot GE '550' AND eng GT '35' AND math GT '35' AND sci GT '35' AND soc GT
'35' AND hin GT '35' AND tel GT '35'.
div = 'FIRST CLASS WITH DISTINCITON'.
ENDIF.

WHEN 'GRAD'.
IF eng LT '35' OR math LT '35' OR sci LT '35' OR soc LT '35' OR hin LT '35'
OR tel LT '35' OR tot LT '210'.
grd = 'F'.
ENDIF.
IF tot GT '220' AND tot LT '500' AND eng GT '35' AND math GT '35' AND sci GT
'35' AND soc GT '35' AND hin GT '35' AND tel GT '35'.
grd = 'B'.
ENDIF.
IF tot GE '500' AND eng GT '35' AND math GT '35' AND sci GT '35' AND soc GT
'35' AND hin GT '35' AND tel GT '35'.
grd = 'A'.
ENDIF.
IF tot GE '550' AND eng GT '35' AND math GT '35' AND sci GT '35' AND soc GT
'35' AND hin GT '35' AND tel GT '35'.
grd = 'A+'.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_1000 INPUT
*&---------------------------------------------------------------------*
*& Form VALIDATE_FIELDS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM validate_fields .
IF eng LT 0 OR eng GT 100 OR
math LT 0 OR math GT 100 OR
sci LT 0 OR sci GT 100 OR
soc LT 0 OR soc GT 100 OR
hin LT 0 OR hin GT 100 OR
tel LT 0 OR tel GT 100 .
MESSAGE 'Please provide the input field value GT 0 OR LE 100' TYPE 'E'.
ENDIF.
ENDFORM. " VALIDATE_FIELDS

You might also like