Skip to Content
Author's profile photo Former Member

calculator code in ABAP by ramesh v

REPORT  zcalculator_ramesh.

DATA:gv_res TYPE p DECIMALS 3.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-h01.

PARAMETERS:p_i1 TYPE i,

           p_i2 TYPE i.

“p_i3 TYPE i,

*           seprt TYPE c.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN: BEGIN OF LINE,

                PUSHBUTTON 42(5) push USER-COMMAND f1,

                PUSHBUTTON 48(5) push1 USER-COMMAND f2.

SELECTION-SCREEN  END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE,

              PUSHBUTTON 42(5) push2 USER-COMMAND f3,

              PUSHBUTTON 48(5) push3 USER-COMMAND f4.

SELECTION-SCREEN  END OF LINE.

SELECTION-SCREEN: BEGIN OF LINE,

  PUSHBUTTON 45(5) push4 USER-COMMAND f5.

SELECTION-SCREEN  END OF LINE.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-h02.

PARAMETERS:old_res TYPE p,

           op TYPE c,

           p_i3 TYPE i,

           result TYPE p DEFAULT gv_res.

.

SELECTION-SCREEN END OF BLOCK b2.

INITIALIZATION.

  push = ‘+’.

  push1 = ‘-‘.

  push2 = ‘*’.

  push3 = ‘/’.

  push4 = ‘=’.

AT SELECTION-SCREEN.

  CASE sy-ucomm.

    WHEN ‘F1’.

      op = ‘+’.

      IF gv_res = space.

        gv_res = p_i1 + p_i2.

      ELSE.

        old_res = result.

        CLEAR result.

        gv_res = p_i3  + gv_res.

      ENDIF.

    WHEN ‘F2’.

      op = ‘-‘.

      IF gv_res = space.

        gv_res = p_i1 – p_i2.

      ELSE.

*        CLEAR p_i2.

*         CLEAR p_i1.

        old_res = result.

        CLEAR result.

        gv_res = gv_res – p_i3.

      ENDIF.

    WHEN ‘F3’.

      op = ‘*’.

      IF gv_res = space.

        gv_res = p_i1 * p_i2.

      ELSE.

*        CLEAR p_i2.

*         CLEAR p_i1.

        old_res = result.

        CLEAR result.

        gv_res = gv_res * p_i3.

      ENDIF.

    WHEN ‘F4’.

      op = ‘/’.

      IF gv_res = space.

        gv_res = p_i1 / p_i2.

      ELSE.

*        CLEAR p_i2.

*         CLEAR p_i1.

        old_res = result.

        CLEAR result.

        gv_res = gv_res /  p_i3.

      ENDIF.

    WHEN ‘F5’.

      CLEAR op.

      CLEAR p_i2.

      CLEAR p_i1.

      result = gv_res.

  ENDCASE.

*process to run this code

*  input data:  give any numeric values for p_i1 & p_i2.

*                   then press any one of the operators(+,-,*,/)

*                   then press  = button.

*                  if you want few more operation then give input value foe p_i3.

*                  press operator.

*                  follow the similar steps to perform required number of operations.

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member
      Blog Post Author

      this is my first application