Advertisement
Deadlife

ABAP simple Calculator

Sep 23rd, 2014
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 1.81 KB | None | 0 0
  1. *&---------------------------------------------------------------------*
  2. *& Report  ZBC400_12_COMPUFIX
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *&
  7. *&---------------------------------------------------------------------*
  8.  
  9. REPORT zbc400_12_sub.
  10.  
  11. TYPES gty_result TYPE p LENGTH 16 DECIMALS 2.
  12.  
  13. PARAMETERS: pa_op TYPE c,
  14.             pa_int1 TYPE i,
  15.             pa_int2 TYPE i.
  16.  
  17. DATA gv_result TYPE gty_result.
  18.  
  19.  
  20. IF ( NOT ( ( pa_op = '+' ) OR ( pa_op = '-' ) OR ( pa_op = '*' ) OR ( pa_op = '/' ) OR ( pa_op = '%' ) ) ) .
  21.   WRITE 'Überprüfe die Eingabe, Trottel'.
  22. ELSEIF ( ( pa_op = '/' ) AND ( pa_int2 = 0 ) ) .
  23.   WRITE 'Keine Division durch Null, Troll'.
  24. ELSE.
  25.   CASE pa_op.
  26.     WHEN '+'.
  27.       gv_result = pa_int1 + pa_int2.
  28.     WHEN '-' .
  29.       gv_result = pa_int1 - pa_int2.
  30.     WHEN '*' .
  31.       gv_result = pa_int1 * pa_int2.
  32.     WHEN '/' .
  33.       gv_result = pa_int1 / pa_int2.
  34.  
  35.     WHEN '%' .
  36.       PERFORM calc_percentage
  37.         USING
  38.           pa_int1
  39.           pa_int2
  40.         CHANGING
  41.           gv_result.
  42.  
  43.   ENDCASE.
  44.   WRITE: gv_result.
  45. ENDIF.
  46. *&---------------------------------------------------------------------*
  47. *&      Form  CALC_PERCENTAGE
  48. *&---------------------------------------------------------------------*
  49. *       text
  50. *----------------------------------------------------------------------*
  51. *  -->  p1        text
  52. *  <--  p2        text
  53. *----------------------------------------------------------------------*
  54. FORM calc_percentage  USING     pv_act TYPE i
  55.                                 pv_max TYPE i
  56.                       CHANGING  cv_result.
  57.   IF pv_max = 0.
  58.     cv_result = 0.
  59.     WRITE 'Fehler bei der Prozentrechnung :/'.
  60.   ELSE.
  61.     cv_result = pv_act / pv_max * 100 .
  62.   ENDIF.
  63. ENDFORM.                    " CALC_PERCENTAGE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement