Application Development 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: 

How to bind data dynamically in drop down list or Combobox via internal table in ABAP?

Former Member
0 Kudos

Hello,

I have a selection screen with this parameter:

PARAMETERS: P_STATU TYPE TY_STATU  AS LISTBOX VISIBLE LENGTH 20.

And its internal table:

WA_Statu-Value = 'P'. WA_Statu-Text = 'Pendientes de sustituir'.

APPEND WA_STATU TO TI_STATU.

WA_Statu-Value = 'S'. WA_Statu-Text = 'Surtidas'.

APPEND WA_STATU TO TI_STATU.

WA_Statu-Value = 'N'. WA_Statu-Text = 'No tratadas'.

APPEND WA_STATU TO TI_STATU.

How can I fill my list?

Please your help

8 REPLIES 8

kumar5
Active Contributor
0 Kudos

Hi ,

You can use the FM 'VRM_SET_VALUES'.

For more details Go with below link. You will find the solution to your problem:

http://scn.sap.com/thread/177047  and

http://wiki.sdn.sap.com/wiki/display/Snippets/Dynamic+selection+screen+with+list+box

Thanks

Kumar Gaurav.

Former Member
0 Kudos

Hi Luis,

Use AT SELECTION-SCREEN OUTPUT event to do this.

Coding:

data: ls_list type vrm_value,

         lt_list type vrm_values.

at selection-screen output.

loop at ti_statu into wa_statu.

   ls_list-key = wa_statu-value.

   ls_list-value = wa_statu-text.

   append ls_list to lt_list.

  clear: ls_list, wa_statu.

endloop.

CALL FUNCTION 'VRM_SET_VALUES'

     EXPORTING

       id              = 'P_STATU'

       values          = lt_list

     EXCEPTIONS

       id_illegal_name = 1

       OTHERS          = 2.

   IF sy-subrc <> 0.

     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

   ENDIF.

refresh: lt_list, it_statu.

Thanks & Regards,

T. Prasanna Kumar

former_member209120
Active Contributor
0 Kudos

Hi Luis Franco,

Try like this

TYPE-POOLS: VRM.

DATA: NAME  TYPE VRM_ID,
       LIST  TYPE VRM_VALUES,
       VALUE LIKE LINE OF LIST.

PARAMETERS: P_STATU(20AS LISTBOX VISIBLE LENGTH 20.

AT SELECTION-SCREEN OUTPUT.

NAME = 'P_STATU'.
VALUE-KEY = 'P'.
VALUE-TEXT = 'Pendientes de sustituir'.
APPEND VALUE TO LIST.

VALUE-KEY = 'S'.
VALUE-TEXT = 'Surtidas'.
APPEND VALUE TO LIST.

VALUE-KEY = 'N'.
VALUE-TEXT = 'No tratadas'.
APPEND VALUE TO LIST.

CALL FUNCTION 'VRM_SET_VALUES'

   EXPORTING
          ID = NAME
          VALUES = LIST.

START-OF-SELECTION.
WRITE: / 'PARAMETER:', P_STATU.

sandeep_ramesh88
Explorer
0 Kudos

Hi Luis,

Use the Function module "VRM_SET_VALUES"....

0 Kudos

Hello

Here is some code snippet:

The key here is the ID and make sure the control is visible not hidden

INTERFACE LIF_SCREEN.

   CLASS-DATA LT_IS_ALANI TYPE ZFI_TT_IS_ALANI .

   CLASS-DATA LT_NEVI_DROPDOWN TYPE VRM_VALUES .

   CLASS-DATA LT_ILGI_DROPDOWN TYPE VRM_VALUES .

   CLASS-DATA LT_TALEP_EDEN_DROPDOWN TYPE VRM_VALUES .

   CLASS-DATA LT_ONAYLAYAN_DROPDOWN TYPE VRM_VALUES .

   CONSTANTS: GC_SEARCH_TEXT1(6) VALUE  ZFIN_VIRMAN_SEARCH_TEXT1," 'VİRMAN',

              GC_SEARCH_TEXT2(6) VALUE  ZFIN_VIRMAN_SEARCH_TEXT2"'VIRMAN'

                .

   ENDINTERFACE.                    "lif_screen

and the

CLASS LCL_SCREEN DEFINITION.

   PUBLIC SECTION.

*----------------------------------------------------------------------*

*       INTERFACE lif_screen DEFINITION

*----------------------------------------------------------------------*

*

*----------------------------------------------------------------------*

     INTERFACES LIF_SCREEN.

*Loads the dropdown lists data

      CLASS-METHODS: FILL_DROP_DOWN_LISTS FOR EVENT

     ON_APPLY_BUSINESS_RULES OF LIF_SCREEN.

ENDCLASS.

class

CLASS LCL_SCREEN implementation.

METHOD FILL_DROP_DOWN_LISTS.

*İlgi values

     CALL FUNCTION 'VRM_SET_VALUES'

       EXPORTING

         ID              = 'GS_HEADER_UI-ILGI'

         VALUES          = LIF_SCREEN~LT_ILGI_DROPDOWN

       EXCEPTIONS

         ID_ILLEGAL_NAME = 1

         OTHERS          = 2.

     IF SY-SUBRC <> 0.

       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

     ENDIF.

*Nevi values

     CALL FUNCTION 'VRM_SET_VALUES'

       EXPORTING

         ID              = 'GS_HEADER_UI-NEVI'

         VALUES          = LIF_SCREEN~LT_NEVI_DROPDOWN

       EXCEPTIONS

         ID_ILLEGAL_NAME = 1

         OTHERS          = 2.

     IF SY-SUBRC <> 0.

       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

     ENDIF.

*Talep edenler

     CALL FUNCTION 'VRM_SET_VALUES'

       EXPORTING

         ID              = 'GS_HEADER_UI-TALEP_EDEN'

         VALUES          = LIF_SCREEN~LT_TALEP_EDEN_DROPDOWN

       EXCEPTIONS

         ID_ILLEGAL_NAME = 1

         OTHERS          = 2.

     IF SY-SUBRC <> 0.

       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

     ENDIF.

*Onaylayanlar

     CALL FUNCTION 'VRM_SET_VALUES'

       EXPORTING

         ID              = 'GS_HEADER_UI-ONAYLAYAN'

         VALUES          = LIF_SCREEN~LT_ONAYLAYAN_DROPDOWN

       EXCEPTIONS

         ID_ILLEGAL_NAME = 1

         OTHERS          = 2.

     IF SY-SUBRC <> 0.

       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

     ENDIF.

   ENDMETHOD.                    "fill_drop_down_lists

endclass.

Former Member
0 Kudos

Hi Luis,

Please use the fm VRM_SET_VALUES to populate the list

With Regards,

Riju Thomas,

Applexus Technologies.

0 Kudos

One example for Binding !!!

DATA LT_DROPDOWN TYPE VRM_VALUES

*Onaylayanlar

     CALL FUNCTION 'VRM_SET_VALUES'

       EXPORTING

         ID              = 'GS_HEADER_UI-ONAYLAYAN'

         VALUES          = LT_DROPDOWN

       EXCEPTIONS

         ID_ILLEGAL_NAME = 1

         OTHERS          = 2.

     IF SY-SUBRC <> 0.

       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

     ENDIF.

0 Kudos

Also Make sure that the screen element is visible at the time

ID represents the name of the screen element!!

ID              = 'GS_HEADER_UI-ONAYLAYAN'