Beruflich Dokumente
Kultur Dokumente
http://www.sapabapcodes.com/2011/12/demo-report-on-generate-subroutine-pool.html
Home
Contact us
1.Selection Screen
2.Output
1 of 4
11/02/2013 19:13
SAP ABAP Useful Developments: Demo Report on Generate Subroutine Pool, Execute Airthmetic For...
http://www.sapabapcodes.com/2011/12/demo-report-on-generate-subroutine-pool.html
Source Code: **"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"* * Report : ZST_DYN_FORMULA * Request No : Local * Developed by : Stallone Christian * Requested on : * Description : **"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"* *Extra Info: ************************************************************************ *Simple Example of Dynamic Report Which Performs Arithmetic Operations *Use Screen Vairables V1 OR V2 if require so ************************************************************************ REPORT ZST_DYN_FORMULA. " Declaration for Dynamic Subroutine DATA: DYN_PROGRAM TYPE STRING, DYN_TABLE TYPE STANDARD TABLE OF STRING, DYN_WA TYPE STRING, DYN_MESS TYPE STRING, DUMP_ID TYPE STRING, TMP_CHAR TYPE STRING, "For Formula IT_FORMULA TYPE STANDARD TABLE OF STRING, WA_FORMULA TYPE STRING, "For Data ANS TYPE P LENGTH 15 DECIMALS 2. DEFINE REPLACE_STR. CLEAR TMP_CHAR. CONCATENATE SPACE &1 SPACE INTO TMP_CHAR SEPARATED BY SPACE. REPLACE ALL OCCURRENCES OF &2 IN FORMULA WITH TMP_CHAR IGNORING CASE. END-OF-DEFINITION. DEFINE SPCL_REPLACE_STR. CLEAR TMP_CHAR. TMP_CHAR = &2. REPLACE ALL OCCURRENCES OF &1 IN FORMULA WITH TMP_CHAR IGNORING CASE. END-OF-DEFINITION. DEFINE REPLACE_OPERATOR. CLEAR TMP_CHAR. CONCATENATE SPACE &1 SPACE INTO TMP_CHAR SEPARATED BY SPACE. REPLACE ALL OCCURRENCES OF &1 IN FORMULA WITH TMP_CHAR IGNORING CASE. END-OF-DEFINITION.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT001. SELECTION-SCREEN SKIP 1. """""""""Value 1 SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT (25) TEXT002 FOR FIELD P_V1. PARAMETERS P_V1 TYPE P LENGTH 15 DECIMALS 2. SELECTION-SCREEN END OF LINE. """""""""Value 2 SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT (25) TEXT003 FOR FIELD P_V2. PARAMETERS P_V2 TYPE P LENGTH 15 DECIMALS 2. SELECTION-SCREEN END OF LINE. """""""""Formula SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT (25) TEXT004 FOR FIELD FORMULA. PARAMETERS FORMULA TYPE CHAR100 DEFAULT '(((V2*10)-V1)+2)/30'. SELECTION-SCREEN END OF LINE. "Text SELECTION-SCREEN SKIP 1. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT (70) TEXT005. SELECTION-SCREEN END OF LINE.
2 of 4
11/02/2013 19:13
SAP ABAP Useful Developments: Demo Report on Generate Subroutine Pool, Execute Airthmetic For...
http://www.sapabapcodes.com/2011/12/demo-report-on-generate-subroutine-pool.html
SELECTION-SCREEN END OF BLOCK B1. LOAD-OF-PROGRAM. TEXT001 = 'Enter Values with Formula to be Executed'. TEXT002 = '1st Value (V1) :'. TEXT003 = '2nd Value (V2) :'. TEXT004 = 'Formula'. TEXT005 = '* To use Screen Inputs Maintain Formula with V1 & V2 Parameters'. START-OF-SELECTION. "Filter Formula to SAP Format PERFORM FILTER_FORMULA. DYN_WA = 'PROGRAM dynamic_report.'. APPEND DYN_WA TO DYN_TABLE. DYN_WA = 'form dyn_form using V1 V2 changing ans.'. APPEND DYN_WA TO DYN_TABLE. CONCATENATE 'ans' '=' FORMULA '.' INTO DYN_WA SEPARATED BY SPACE. APPEND DYN_WA TO DYN_TABLE. DYN_WA = 'endform.'. APPEND DYN_WA TO DYN_TABLE. CLEAR DYN_WA. "*Genrate Dynamic Program GENERATE SUBROUTINE POOL DYN_TABLE NAME DYN_PROGRAM MESSAGE DYN_MESS SHORTDUMP-ID DUMP_ID. IF SY-SUBRC = 0. CLEAR DYN_MESS. PERFORM ('DYN_FORM') IN PROGRAM (DYN_PROGRAM) USING P_V1 P_V2 CHANGING ANS. CLEAR TMP_CHAR. TMP_CHAR = ANS. CONCATENATE 'Your Ans is :' TMP_CHAR INTO TMP_CHAR SEPARATED BY SPACE. MESSAGE TMP_CHAR TYPE 'I'. ELSE. MESSAGE DYN_MESS TYPE 'I'. ENDIF. *&---------------------------------------------------------------------* *& Form FILTER_FORMULA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM FILTER_FORMULA . "For Braces, All Signs " * " * " * " * " * " * " * " * " * " * " * " * " * " * Start SPCL_REPLACE_STR: 'SQRT(' 'SQRT', 'SQRT (' 'SQRT', '**' 'POWER'. REPLACE_OPERATOR: '(', ')', '*', '/' , '+', '-'. SPCL_REPLACE_STR: 'sqrt' 'POWER' 'sqrt(', '**'.
REPLACE_OPERATOR: '**', '*-', '/-'. " * " * End " * " * " * " * " * " * " * " * " * " * " * " * " * "Change Variables "From Actual Report to Dynamic Sub Routine Formal Parameters "1st Formal "2nd Actual from Forumula REPLACE_STR : 'V1' 'V1', 'V2' 'V2'. REPLACE ALL OCCURRENCES OF REGEX '=' IN FORMULA WITH SPACE. "Last Conversion CLEAR: IT_FORMULA, WA_FORMULA.
3 of 4
11/02/2013 19:13
SAP ABAP Useful Developments: Demo Report on Generate Subroutine Pool, Execute Airthmetic For...
http://www.sapabapcodes.com/2011/12/demo-report-on-generate-subroutine-pool.html
4 of 4
11/02/2013 19:13