Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Selection-screen at runtime!

Former Member
0 Likes
1,139

Hi,

I want to create parameters/select-options at runtime.

it is possible?

joseph

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
830

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.

6 REPLIES 6
Read only

Former Member
0 Likes
831

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.

Read only

0 Likes
830

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

Read only

0 Likes
830

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

Read only

Former Member
0 Likes
830

and what about :

FM FREE_SELECTIONS_INIT

FREE_SELECTIONS_DIALOG?

joseph

Read only

0 Likes
830

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.

Read only

0 Likes
830

I'm gone to test it and let you know....if i do something good with it