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: 

Populating selection drop downs.

Former Member
0 Kudos

I am creating an abap report and have several fields on the selection screen.

I would like to know if it is possible to populate one of the fields according to what I have put in another field.

For example, I have a field for Manager Name and then another field for Employee Name. I would like the user to be able to enter a name in Manager Name and then the possible values for Employee Name are the people that report to this person.

1 ACCEPTED SOLUTION

former_member1245113
Active Contributor
0 Kudos

Hi SImon,

Please chekc the following.

[Populating one Drop down based on another Dropdown|;

DATA : BEGIN OF f4_tab OCCURS 0,
         carrid TYPE sflight-carrid,
         connid TYPE sflight-connid,
    END OF f4_tab.
   CLEAR lin.
 " adjust this as per your requirement
 
  DATA : dynpread TYPE TABLE OF dynpread WITH HEADER LINE. 
  REFRESH dynpread.
  CLEAR dynpread.
  dynpread-fieldname = 'ITAB-CARRID'.
*  dynpread-stepl = lin.  
  APPEND dynpread.
  CLEAR dynpread.
 
at selection-screen on value-request for YOUR_FIELD " Your Second Field here
  CALL FUNCTION 'DYNP_VALUES_READ' 
        " This FM gives the First field value before u press Enter/ PAI is triggered
    EXPORTING
      dyname                               = sy-repid
      dynumb                               = sy-dynnr
    TABLES
      dynpfields                           = dynpread
   EXCEPTIONS
     invalid_abapworkarea                 = 1
     invalid_dynprofield                  = 2
     invalid_dynproname                   = 3
     invalid_dynpronummer                 = 4
     invalid_request                      = 5
     no_fielddescription                  = 6
     invalid_parameter                    = 7
     undefind_error                       = 8
     double_conversion                    = 9
     stepl_not_found                      = 10
     OTHERS                               = 11
            .
  IF sy-subrc IS INITIAL.
    READ TABLE dynpread WITH KEY fieldname = 'ITAB-CARRID'.
    IF sy-subrc IS INITIAL.
      SELECT carrid connid FROM sflight
            INTO TABLE f4_tab
             WHERE carrid = dynpread-fieldvalue.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield               = 'CONNID'
         dynpprog               = sy-repid
         dynpnr                 = sy-dynnr
         dynprofield            = 'ITAB-CONNID'
         value_org              = 'S'
        TABLES
          value_tab              = f4_tab
    ENDIF.
  ENDIF.

Cheer

Ram

4 REPLIES 4

Former Member
0 Kudos

use the FM 'F4IF_INT_TABLE_VALUE_REQUEST' for value request.

read the manager as entered by the User. use the relation B002 from Manager to employees to find the list of employees whose manager is this person. pull them in one internal table and pass the table in aboev FM. It'll display the employees on the selection screen event ON VALUE-REQUEST FOR <employees>

former_member1245113
Active Contributor
0 Kudos

Hi SImon,

Please chekc the following.

[Populating one Drop down based on another Dropdown|;

DATA : BEGIN OF f4_tab OCCURS 0,
         carrid TYPE sflight-carrid,
         connid TYPE sflight-connid,
    END OF f4_tab.
   CLEAR lin.
 " adjust this as per your requirement
 
  DATA : dynpread TYPE TABLE OF dynpread WITH HEADER LINE. 
  REFRESH dynpread.
  CLEAR dynpread.
  dynpread-fieldname = 'ITAB-CARRID'.
*  dynpread-stepl = lin.  
  APPEND dynpread.
  CLEAR dynpread.
 
at selection-screen on value-request for YOUR_FIELD " Your Second Field here
  CALL FUNCTION 'DYNP_VALUES_READ' 
        " This FM gives the First field value before u press Enter/ PAI is triggered
    EXPORTING
      dyname                               = sy-repid
      dynumb                               = sy-dynnr
    TABLES
      dynpfields                           = dynpread
   EXCEPTIONS
     invalid_abapworkarea                 = 1
     invalid_dynprofield                  = 2
     invalid_dynproname                   = 3
     invalid_dynpronummer                 = 4
     invalid_request                      = 5
     no_fielddescription                  = 6
     invalid_parameter                    = 7
     undefind_error                       = 8
     double_conversion                    = 9
     stepl_not_found                      = 10
     OTHERS                               = 11
            .
  IF sy-subrc IS INITIAL.
    READ TABLE dynpread WITH KEY fieldname = 'ITAB-CARRID'.
    IF sy-subrc IS INITIAL.
      SELECT carrid connid FROM sflight
            INTO TABLE f4_tab
             WHERE carrid = dynpread-fieldvalue.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield               = 'CONNID'
         dynpprog               = sy-repid
         dynpnr                 = sy-dynnr
         dynprofield            = 'ITAB-CONNID'
         value_org              = 'S'
        TABLES
          value_tab              = f4_tab
    ENDIF.
  ENDIF.

Cheer

Ram

Former Member
0 Kudos

Hi,

Refer to the below link which has code snippet helpful for your requirement.

[Chain F4 help implementation|http://www.divulgesap.com/blog.php?p=Njk=]

Cheers,

Ravi

Former Member
0 Kudos

Thankyou all for your help. I eventually sorted it out.