I have written form statment in subroutine program and calling in script layout using perform statment it is not calling in the script.
i written following code in the subroutine program .
PROGRAM ZWHDTAX.
form WHDTAX tables in_tab structure itcsy
out_tab structure itcsy.
data: A_SKFBT type regup-skfbt,
A_WRBTR type regud-wrbtr ,
C_WTAX TYPE regup-skfbt,
E_FLOAT TYPE F,
E_DEC TYPE ESECOMPAVG,
E_DECIMALS TYPE I,
TELNUMBER1(30) TYPE C.
read table in_tab WITH KEY NAME = 'REGUP-SKFBT'.
check sy-subrc = 0.
MOVE IN_TAB-VALUE TO TELNUMBER1.
CALL FUNCTION 'C14W_CHAR_NUMBER_CONVERSION'
EXPORTING
I_STRING = TELNUMBER1
IMPORTING
E_FLOAT = E_FLOAT
E_DEC = E_DEC
E_DECIMALS = E_DECIMALS
EXCEPTIONS
WRONG_CHARACTERS = 1
FIRST_CHARACTER_WRONG = 2
ARITHMETIC_SIGN = 3
MULTIPLE_DECIMAL_SEPARATOR = 4
THOUSANDSEP_IN_DECIMAL = 5
THOUSAND_SEPARATOR = 6
NUMBER_TOO_BIG = 7
OTHERS = 8
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
.
A_SKFBT = E_DEC.
CLEAR TELNUMBER1.
read table in_tab WITH KEY NAME = 'REGUD-WRBTR'.
check sy-subrc = 0.
MOVE IN_TAB-VALUE TO TELNUMBER1.
CALL FUNCTION 'C14W_CHAR_NUMBER_CONVERSION'
EXPORTING
I_STRING = TELNUMBER1
IMPORTING
E_FLOAT = E_FLOAT
E_DEC = E_DEC
E_DECIMALS = E_DECIMALS
EXCEPTIONS
WRONG_CHARACTERS = 1
FIRST_CHARACTER_WRONG = 2
ARITHMETIC_SIGN = 3
MULTIPLE_DECIMAL_SEPARATOR = 4
THOUSANDSEP_IN_DECIMAL = 5
THOUSAND_SEPARATOR = 6
NUMBER_TOO_BIG = 7
OTHERS = 8
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
.
A_WRBTR = E_DEC.
C_WTAX = A_SKFBT - A_WRBTR.
read table out_tab index 1.
check sy-subrc = 0.
out_tab-value = C_WTAX.
modify out_tab index 1.
*endif .
endform.
following code i written in script layout it is not calling in the script.
/:PERFORM WHDTAX IN PROGRAM ZWHDTAX
/:USING ®UP-SKFBT&
/:USING ®UD-WRBTR&
/:CHANGING &C_WTAX&
/:ENDPERFORM.