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: 

select-option on dynpro

Former Member
0 Kudos

Hi!

How can I put a select-option like "object" into a dynpro which is not a selection screen.

Is there any possibility to do this?

THX:

Peter

1 ACCEPTED SOLUTION

abdul_hakim
Active Contributor
0 Kudos

Hi Peter,

Welcome to SDN.

You cannot use SELECT-OPTIONS in the dynpro.

Cheers,

Abdul Hakim

4 REPLIES 4

former_member188685
Active Contributor
0 Kudos

Hi,

select options in screen check this code..

REPORT  ZTEST_SCREEN                            .
DATA : BEGIN OF IT_DYNPFIELDS OCCURS 3.
        INCLUDE STRUCTURE DYNPREAD.
DATA : END OF IT_DYNPFIELDS.
DATA: TEST(10) TYPE C.
RANGES:  R_UNAME FOR SY-UNAME.
DATA:     V_USERNAME LIKE  SY-UNAME.
DATA : V_PROG LIKE D020S-PROG VALUE 'ZTEST_SCREEN',
       V_DNUM LIKE D020S-DNUM VALUE '0100'.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'TEST'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
  CASE SY-UCOMM.

    WHEN 'BACK'.
      LEAVE TO SCREEN 0.

  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  GET_CURSOR_USERNAME  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE GET_CURSOR_USERNAME INPUT.

  REFRESH IT_DYNPFIELDS.
  CLEAR   IT_DYNPFIELDS.

  MOVE 'V_USERNAME' TO IT_DYNPFIELDS-FIELDNAME.
  APPEND IT_DYNPFIELDS.
  CLEAR   IT_DYNPFIELDS.

  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      DYNAME               = V_PROG
      DYNUMB               = V_DNUM
      TRANSLATE_TO_UPPER   = 'X'
    TABLES
      DYNPFIELDS           = IT_DYNPFIELDS
    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 = 0.
    READ TABLE IT_DYNPFIELDS WITH KEY FIELDNAME = 'V_USERNAME'.
    IF SY-SUBRC = 0.
      V_USERNAME = IT_DYNPFIELDS-FIELDVALUE.
    ENDIF.
  ENDIF.
  PERFORM GET_MULTIPLE.


ENDMODULE.                 " GET_CURSOR_USERNAME  INPUT
*&---------------------------------------------------------------------*
*&      Form  GET_MULTIPLE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_MULTIPLE .
* Dynamically holding Field name
  FIELD-SYMBOLS: <FST> TYPE STANDARD TABLE.
  IF  R_UNAME[] IS INITIAL.
    IF NOT V_USERNAME IS INITIAL.
      R_UNAME-SIGN = 'I'.
      R_UNAME-OPTION = 'EQ'.
      R_UNAME-LOW = V_USERNAME.
      APPEND R_UNAME.
      CLEAR  R_UNAME.
    ENDIF.
  ENDIF.

  ASSIGN R_UNAME[] TO <FST>.
  CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
    EXPORTING
      TITLE             = 'Select Multiple Value'(059)
      TEXT              = 'Finish Group'(058)
      SIGNED            = 'X'
      LOWER_CASE        = ' '
      NO_INTERVAL_CHECK = 'X'
      JUST_DISPLAY      = ' '
      JUST_INCL         = 'X'
    TABLES
      RANGE             = <FST>
    EXCEPTIONS
      NO_RANGE_TAB      = 1
      CANCELLED         = 2
      INTERNAL_ERROR    = 3
      OTHERS            = 4.

  IF SY-SUBRC = 0.
    READ TABLE R_UNAME INDEX 1.
    IF SY-SUBRC = 0.
      V_USERNAME = R_UNAME-LOW.
    ENDIF.
  ENDIF.

ENDFORM.                    " GET_MULTIPLE

Check this thread...

Regards

Vijay

abdul_hakim
Active Contributor
0 Kudos

Hi Peter,

Welcome to SDN.

You cannot use SELECT-OPTIONS in the dynpro.

Cheers,

Abdul Hakim

0 Kudos

Sure you can. You can define the selection screen as subscreen and include the subscreen in your dynpro. Here is a sample program.



report zrich_0006 .

tables: mara.

* Custom Selection Screen 1010
selection-screen begin of screen 1010 as subscreen.
selection-screen begin of block b1 with frame title text-001.
parameters: p_rad1 radiobutton group grp1 default 'X',
            p_rad2 radiobutton group grp1,
            p_rad3 radiobutton group grp1.
select-options: s_matnr for  mara-matnr,
                s_matkl for  mara-matkl,
                s_mtart for  mara-mtart.
selection-screen end of block b1.
selection-screen end of screen 1010.


start-of-selection.

  call screen 100.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
module status_0100 output.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.

endmodule.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
module user_command_0100 input.

endmodule.


* Screen screen 100 with a subscreen area called "subscreen_1010"
* Screen Flow Logic follows

*process before output.
*
*  module status_0100.
*
*  call subscreen subscreen_1010 including sy-repid '1010'.
*
*process after input.
*
*  call subscreen subscreen_1010 .
*
*  module user_command_0100.

Regards,

Rich Heilman

Former Member
0 Kudos

THX for the replies and the greeting also .