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: 

Please see the code n give ur comments !

Former Member
0 Kudos

Hi,

I have selection screen with two list boxes.

I am populating the second based on the selection in the first one.

But, when I'm selecting a value from the second one, it is not reflected in the program, it means it value is blank.

Please go thro' the following code, n give ur suggestions.

IF list IS INITIAL.

  • Retrive Remarks from ZLOT007

SELECT remarks bukrs FROM zlot007 INTO TABLE it_ftp_tar.

name = 'FTP_TAR'.

count = 1.

  • Populating list box 1

LOOP AT it_ftp_tar.

value-text = it_ftp_tar-remarks.

value-key = count.

APPEND value TO list.

count = count + 1.

ENDLOOP.

  • Function to load data into list box

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = name

values = list.

ENDIF.

  • If FTP setting field is not initial

IF ftp_tar IS NOT INITIAL AND list1 IS INITIAL.

READ TABLE it_ftp_tar INDEX ftp_tar.

CONDENSE it_ftp_tar-bukrs.

l_bukrs = it_ftp_tar-bukrs.

  • Fetching Plant belongs to the Company code

SELECT bukrs bwkey FROM t001k INTO TABLE it_werks

WHERE bukrs = l_bukrs.

name = 'P_WERKS'.

count = 1.

  • Populating list box 2 for Plant

LOOP AT it_werks.

value-text = it_werks-werks.

value-key = count.

APPEND value TO list1.

count = count + 1.

ENDLOOP.

  • function to load data into list box

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = name

values = list1.

ENDIF.

  • CLEAR it_werks.

CONDENSE p_werks.

READ TABLE it_werks INDEX p_werks.

CONDENSE it_werks-werks.

l_werks = it_werks-werks.

Thanks,

Senthil

2 REPLIES 2

Lakshmant1
Active Contributor
0 Kudos

Hi Senthikumar,

Have a look at demo program DEMO_DYNPRO_DROPDOWN_LISTBOX.

Thanks

Lakshman

jayanthi_jayaraman
Active Contributor
0 Kudos

Hi,

I think you have to use,at selection-screen on value-request for the second field.

Here is the sample code for F4 help.In this,second F4 help is decided based on value of the first parameter.

Have a look at it.Kindly reward points if it helps.

REPORT  ZGK_TEST
        message-id zsd
        line-count 16(1)
        no standard page heading .
*----------------------------------------------------------------------*
*                        Tables Declaration
*----------------------------------------------------------------------*

tables : vbap.         " Sales Document: Item Data
*----------------------------------------------------------------------*
*                      Constant Declaration                           		 *
*----------------------------------------------------------------------*

CONSTANTS:
  C_X TYPE C VALUE 'X'.     " Translate to Uppercase
*----------------------------------------------------------------------*
*                      Variable Declaration                            		*
*----------------------------------------------------------------------*

* Variable for Table index
  data v_sytabix like sy-tabix.

* Variable for Program name
  data L_NAME LIKE SYST-REPID.
*----------------------------------------------------------------------*
*                         Ranges Declaration                           		*
*----------------------------------------------------------------------*

* Range for getting values form selection screen
 DATA: BEGIN OF range1 OCCURS 0,
         SIGN(1),
         OPTION(2),
         LOW  LIKE vbap-vbeln,
         high like vbap-vbeln,
      END OF range1.
*----------------------------------------------------------------------*
*                         Structure Declaration                        		*
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
*                    Internal table Declaration                        		*
*----------------------------------------------------------------------*

* Internal table for Report output
  data: begin of i_vbap occurs 0,
          vbeln like vbap-vbeln,            " Sales Document
          posnr like vbap-posnr,            " Sales Document item
        end of i_vbap.

* Internal table for output to the F4 help
  data: begin of I_DISPLAY occurs 0,
          vbeln like vbap-vbeln,            " Sales Document
          posnr like vbap-posnr,            " Sales Document item
        end of I_DISPLAY.

* Internal table for return value form function module
  DATA: BEGIN OF I_RETURNVAL OCCURS 0.
          INCLUDE STRUCTURE DDSHRETVAL.     " Interface Structure Search
  DATA: END OF I_RETURNVAL.

* Internal table for F4 help field heading
  DATA: I_FIELDTAB LIKE DFIES OCCURS 0 WITH HEADER LINE.

* Internal table for getting screen values from selection screen
  data L_SCR_FIELDS LIKE DYNPREAD OCCURS 1 WITH HEADER LINE.
*----------------------------------------------------------------------*
*                      Field-Symbols                                   *
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
*                      Selection-screen                                *
*----------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME title text-001.
  select-options:
        S_VBELN for vbap-vbeln no intervals,
        S_POSNR for vbap-posnr no intervals.
SELECTION-SCREEN end OF BLOCK B1.
*----------------------------------------------------------------------*
*                      AT SELECTION-SCREEN ON VALUE-REQUEST            *
*----------------------------------------------------------------------*

at selection-screen on value-request for s_posnr-low.

  clear: L_SCR_FIELDS, I_FIELDTAB, i_display, I_RETURNVAL.
  refresh: L_SCR_FIELDS, I_FIELDTAB, i_display, I_RETURNVAL.

  L_NAME = SYST-REPID.

  MOVE 'S_VBELN-LOW' TO L_SCR_FIELDS-FIELDNAME.
  APPEND L_SCR_FIELDS.

* Call the Function module DYNP_VALUES_READ to get the values form
* selection screen
  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      DYNAME                         = L_NAME
      DYNUMB                         = SYST-DYNNR
      TRANSLATE_TO_UPPER             = C_X         " X
    TABLES
      DYNPFIELDS                     = L_SCR_FIELDS
   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 eq 0.
    LOOP AT L_SCR_FIELDS.
      range1-sign = 'I'.
      range1-option = 'EQ'.
      range1-low = L_SCR_FIELDS-FIELDVALUE.
      range1-high = space.
      append range1.
    ENDLOOP.
  ENDIF.


* F4 help Field headings

  I_FIELDTAB-TABNAME = 'I_DISPLAY'.

  I_FIELDTAB-FIELDNAME = 'VBELN'.
  I_FIELDTAB-POSITION = '1'.
  I_FIELDTAB-OUTPUTLEN = '10'.
  I_FIELDTAB-INTTYPE = 'C'.
  I_FIELDTAB-INTLEN = '10'.
  APPEND I_FIELDTAB.

  I_FIELDTAB-FIELDNAME = 'POSNR'.
  I_FIELDTAB-POSITION = '2'.
  I_FIELDTAB-OFFSET = '10'.
  I_FIELDTAB-OUTPUTLEN = '6'.
  I_FIELDTAB-INTTYPE = 'N'.
  I_FIELDTAB-INTLEN = '6'.
  APPEND I_FIELDTAB.

* Retrieve sales document, Sales document item from table Sales
* Document: Item Data(VBAP).
* Primary keys used for selection: VBELN
  select vbeln posnr from vbap
               into table i_display
               where vbeln in range1.

* Call the function module F4IF_INT_TABLE_VALUE_REQUEST for F4 values

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD               = 'POSNR'
      WINDOW_TITLE           = 'Line Item'
      VALUE_ORG              = 'S'
      MULTIPLE_CHOICE        = C_X           " (for muliple selection)
    TABLES
      VALUE_TAB              = I_DISPLAY
      FIELD_TAB              = I_FIELDTAB
      RETURN_TAB             = I_RETURNVAL
    EXCEPTIONS
      PARAMETER_ERROR        = 1
      NO_VALUES_FOUND        = 2
      OTHERS                 = 3
          .
  IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ELSE.

* Star for For single values
*   READ TABLE I_RETURNVAL INDEX 1.
*    S_POSNR-LOW = I_RETURNVAL-FIELDVAL.
* End for the single values

* Start For multiple selection
   loop at i_returnval.
     s_posnr-sign = 'I'.
     s_posnr-option = 'EQ'.
     s_posnr-low = I_RETURNVAL-FIELDVAL.
     append s_posnr.
   endloop.
   sort s_posnr.
   read table s_posnr index 1.
* End for multiple selection
  ENDIF.
*----------------------------------------------------------------------*
*                      Start-of-selection                              		*
*----------------------------------------------------------------------*

start-of-selection.
* Retrieve sales document, Sales document item from table Sales
* Document: Item Data(VBAP).
* Primary keys used for selection: VBELN
  select vbeln posnr from vbap
                    into table i_vbap
                    where vbeln in s_vbeln
                      and posnr in s_posnr.
* if the above selection is successful continue the process else exit *
* form the report
  if sy-subrc ne 0.
*    message e002 with 'No data to display'.
  endif.

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

*                        End-of-selection                              		*

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

end-of-selection.
  if not i_vbap[] is initial.
    loop at i_vbap.
      write:/ i_vbap-vbeln, i_vbap-posnr.
    endloop.
  endif.