‎2005 Jun 28 11:32 AM
Hi,
I want to create parameters/select-options at runtime.
it is possible?
joseph
‎2005 Jun 28 11:43 AM
Hi,
If you want to have selection screen at run time then just try out this piece of dynamic programming.
REPORT ZUTIL_SEARCH_STRUCTURE MESSAGE-ID 031 .
START-OF-SELECTION.
PERFORM DYNAMIC_CODE.
FORM DYNAMIC_CODE.
APPEND 'REPORT ZSEARCH NO STANDARD PAGE HEADING.' TO ITAB.
APPEND 'TABLES : DD03L,DD02L.' TO ITAB.
DATA TAB LIKE TEXTPOOL OCCURS 0 WITH HEADER LINE.
APPEND 'SELECTION-SCREEN BEGIN OF BLOCK BLK' TO ITAB.
APPEND 'WITH FRAME TITLE TEXT-001.' TO ITAB.
DO P4 TIMES.
REC_CNT = SY-INDEX.
CONDENSE REC_CNT NO-GAPS.
IF P1 = 'X'.
CONCATENATE 'PARAMETERS:F' REC_CNT
' LIKE DD03L-FIELDNAME OBLIGATORY.'
INTO WA.
APPEND WA TO ITAB.
TAB-ID = 'S'.
CONCATENATE 'F' REC_CNT INTO WA.
TAB-KEY = WA.
CONCATENATE'$$$$$$$$' 'Field Name' REC_CNT INTO WA.
TAB-ENTRY = WA.
ENDIF.
IF P2 = 'X'.
CONCATENATE 'PARAMETERS:D' REC_CNT
' LIKE DD03L-ROLLNAME OBLIGATORY.'
INTO WA.
APPEND WA TO ITAB.
TAB-ID = 'S'.
CONCATENATE 'D' REC_CNT INTO WA.
TAB-KEY = WA.
CONCATENATE'$$$$$$$$' 'Data Element' REC_CNT INTO WA.
TAB-ENTRY = WA.
ENDIF.
IF P3 = 'X'.
APPEND 'SELECTION-SCREEN BEGIN OF LINE.' TO ITAB.
CONCATENATE 'SELECTION-SCREEN COMMENT (15) FOR FIELD DT'
REC_CNT '.' INTO WA.
APPEND WA TO ITAB.
CONCATENATE 'PARAMETERS:DT' REC_CNT
' LIKE DD03L-DATATYPE OBLIGATORY.'
INTO WA.
APPEND WA TO ITAB.
CONCATENATE 'SELECTION-SCREEN COMMENT (16) FOR FIELD SIZE'
REC_CNT '.' INTO WA.
APPEND WA TO ITAB.
CONCATENATE 'PARAMETERS:SIZE' REC_CNT
' LIKE DD03L-LENG OBLIGATORY.' INTO WA.
APPEND WA TO ITAB.
APPEND 'SELECTION-SCREEN END OF LINE.' TO ITAB.
TAB-ID = 'S'.
CONCATENATE 'DT' REC_CNT INTO WA.
TAB-KEY = WA.
CONCATENATE'$$$$$$$$' 'Data Type' REC_CNT INTO WA.
TAB-ENTRY = WA.
APPEND TAB.
TAB-ID = 'S'.
CONCATENATE 'SIZE' REC_CNT INTO WA.
TAB-KEY = WA.
CONCATENATE'$$$$$$$$' 'Len. of Field' REC_CNT INTO WA.
TAB-ENTRY = WA.
ENDIF.
APPEND TAB.
ENDDO.
APPEND 'SELECTION-SCREEN END OF BLOCK BLK.' TO ITAB.
ENDFORM. " DYNAMIC_CODE
Regards,
jagath.
‎2005 Jun 28 11:43 AM
Hi,
If you want to have selection screen at run time then just try out this piece of dynamic programming.
REPORT ZUTIL_SEARCH_STRUCTURE MESSAGE-ID 031 .
START-OF-SELECTION.
PERFORM DYNAMIC_CODE.
FORM DYNAMIC_CODE.
APPEND 'REPORT ZSEARCH NO STANDARD PAGE HEADING.' TO ITAB.
APPEND 'TABLES : DD03L,DD02L.' TO ITAB.
DATA TAB LIKE TEXTPOOL OCCURS 0 WITH HEADER LINE.
APPEND 'SELECTION-SCREEN BEGIN OF BLOCK BLK' TO ITAB.
APPEND 'WITH FRAME TITLE TEXT-001.' TO ITAB.
DO P4 TIMES.
REC_CNT = SY-INDEX.
CONDENSE REC_CNT NO-GAPS.
IF P1 = 'X'.
CONCATENATE 'PARAMETERS:F' REC_CNT
' LIKE DD03L-FIELDNAME OBLIGATORY.'
INTO WA.
APPEND WA TO ITAB.
TAB-ID = 'S'.
CONCATENATE 'F' REC_CNT INTO WA.
TAB-KEY = WA.
CONCATENATE'$$$$$$$$' 'Field Name' REC_CNT INTO WA.
TAB-ENTRY = WA.
ENDIF.
IF P2 = 'X'.
CONCATENATE 'PARAMETERS:D' REC_CNT
' LIKE DD03L-ROLLNAME OBLIGATORY.'
INTO WA.
APPEND WA TO ITAB.
TAB-ID = 'S'.
CONCATENATE 'D' REC_CNT INTO WA.
TAB-KEY = WA.
CONCATENATE'$$$$$$$$' 'Data Element' REC_CNT INTO WA.
TAB-ENTRY = WA.
ENDIF.
IF P3 = 'X'.
APPEND 'SELECTION-SCREEN BEGIN OF LINE.' TO ITAB.
CONCATENATE 'SELECTION-SCREEN COMMENT (15) FOR FIELD DT'
REC_CNT '.' INTO WA.
APPEND WA TO ITAB.
CONCATENATE 'PARAMETERS:DT' REC_CNT
' LIKE DD03L-DATATYPE OBLIGATORY.'
INTO WA.
APPEND WA TO ITAB.
CONCATENATE 'SELECTION-SCREEN COMMENT (16) FOR FIELD SIZE'
REC_CNT '.' INTO WA.
APPEND WA TO ITAB.
CONCATENATE 'PARAMETERS:SIZE' REC_CNT
' LIKE DD03L-LENG OBLIGATORY.' INTO WA.
APPEND WA TO ITAB.
APPEND 'SELECTION-SCREEN END OF LINE.' TO ITAB.
TAB-ID = 'S'.
CONCATENATE 'DT' REC_CNT INTO WA.
TAB-KEY = WA.
CONCATENATE'$$$$$$$$' 'Data Type' REC_CNT INTO WA.
TAB-ENTRY = WA.
APPEND TAB.
TAB-ID = 'S'.
CONCATENATE 'SIZE' REC_CNT INTO WA.
TAB-KEY = WA.
CONCATENATE'$$$$$$$$' 'Len. of Field' REC_CNT INTO WA.
TAB-ENTRY = WA.
ENDIF.
APPEND TAB.
ENDDO.
APPEND 'SELECTION-SCREEN END OF BLOCK BLK.' TO ITAB.
ENDFORM. " DYNAMIC_CODE
Regards,
jagath.
‎2005 Jun 28 11:58 AM
hi Jagath ,
thank you very much for help.
I don't understand how do you use this code.
How I'm suppose to use table itab and tab?
their contains all the necessary code to build a selection screen but how should I use it?
joseph
‎2005 Jun 28 12:05 PM
Hi Joseph,
Basically the idea is :
a) To create a new program at runtime
b) Generate your selection-screen at runtime
c) Execute your runtime-created program
You may refer this http://help.sap.com/saphelp_47x200/helpdata/en/9f/db996135c111d1829f0000e829fbfe/frameset.htm
Regards,
Subramanian V.
Message was edited by: Subramanian Venkateswaran
‎2005 Jun 28 12:11 PM
and what about :
FM FREE_SELECTIONS_INIT
FREE_SELECTIONS_DIALOG?
joseph
‎2005 Jun 28 12:19 PM
Personally never used it. The only doubt for me in the FM's that you have mentioned is, how is it going to handle validation, if at all , there are any.
Thanks a lot for sharing these FM's with us.
Regards,
Subramanian V.
‎2005 Jun 28 12:30 PM
I'm gone to test it and let you know....if i do something good with it