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

F4 help

Former Member
0 Likes
791

Dear All ,

can anybody send me the code how to add more fields at F4 help of selection screen.

eg;on selection screen WARPL(Maintenance plan).by cliching F4 all plan numbers are coming, I want corresponding text should come i.e.EQKT-EQKTX.

6 REPLIES 6
Read only

Former Member
0 Likes
770

HI,

Please refer the code below:


DATA: return TYPE TABLE OF ddshretval WITH HEADER LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_WERKS-LOW.
SELECT WERKS NAME1 INTO CORRESPONDING FIELDS OF TABLE KUNNSO_ITAB FROM T001W.
DELETE ADJACENT DUPLICATES FROM KUNNSO_ITAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'WERKS'
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'S_WERKS'
VALUE_ORG = 'S'
multiple_choice = 'X'
TABLES
VALUE_TAB = KUNNSO_ITAB
return_tab = return.

IF SY-SUBRC 0.
SORT return BY fieldval DESCENDING.

LOOP AT return.
S_WERKS-low = return-fieldval.
S_WERKS-option = 'EQ'.
S_WERKS-sign = 'I'.
S_WERKS-high = space.
APPEND S_WERKS.
ENDLOOP.

SORT S_WERKS BY low.
ENDIF.

Thanks,

Sriram Ponna.

Read only

Former Member
0 Likes
770

create a search help and add to ur selection screen field

Read only

Former Member
0 Likes
770

Hi,

Check the below code.

DATA: BEGIN OF itab OCCURS 0,

equnr type equnr,

eqktx type ktx01,

END OF itab.

SELECTION-SCREEN: BEGIN OF BLOCK main WITH FRAME.

PARAMETERS: p_equnr type equnr.

SELECTION-SCREEN END OF BLOCK main.

*----


  • Validation Section

*----


INITIALIZATION.

SELECT distinct equnr eqktx FROM eqkt into TABLE itab

where spras = 'E'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_equnr.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'EQUNR'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'P_EQUNR'

value_org = 'S'

TABLES

value_tab = itab

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.

ENDIF.

Read only

Former Member
0 Likes
770

Hi,

For maintainance plan, use the below code.

DATA: BEGIN OF itab OCCURS 0,

warpl type warpl,

wptxt type wptxt,

END OF itab.

SELECTION-SCREEN: BEGIN OF BLOCK main WITH FRAME.

PARAMETERS: p_warpl type warpl.

SELECTION-SCREEN END OF BLOCK main.

*----


  • Validation Section

*----


INITIALIZATION.

SELECT distinct warpl wptxt FROM mpla into TABLE itab.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_WARPL.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'WARPL'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'P_WARPL'

value_org = 'S'

TABLES

value_tab = itab

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.

ENDIF.

Read only

S0025444845
Active Participant
0 Likes
770

Hi,

Take help of the below code,

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_usnam-low.

**//To provide F4 help to S_USNAM-LOW

  • PERFORM f_f4help_usnam USING 'S_USNAM-LOW'.

*

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_usnam-high.

**//To provide F4 help to S_USNAM-HIGH

  • PERFORM f_f4help_usnam USING 'S_USNAM-HIGH'.

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_wbs-low.

**//To provide F4 help to S_WBS-LOW

  • PERFORM f_f4help_wbs USING 'S_WBS-LOW'.

*

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_wbs-high.

**//To provide F4 help to S_WBS-HIGH

  • PERFORM f_f4help_wbs USING 'S_WBS-HIGH'.

&----


*& Form f_f4help_usnam

*&----


    • To provide F4 help to username

*----


    • -->P_0019 text

*----


*FORM f_f4help_usnam USING value(p_0019) TYPE any.

**// To retrieve username from mkpf.

  • SELECT bname

  • FROM usr01

  • INTO TABLE it_usnam.

*

  • SORT: it_usnam BY usnam.

  • DELETE ADJACENT DUPLICATES FROM it_usnam COMPARING usnam.

*

  • CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

  • EXPORTING

    • DDIC_STRUCTURE = ' '

  • retfield = c_retusnam

    • PVALKEY = ' '

  • dynpprog = c_dynpprog

  • dynpnr = c_dynpnr

  • dynprofield = p_0019

    • STEPL = 0

    • WINDOW_TITLE =

    • VALUE = ' '

  • value_org = c_s

    • MULTIPLE_CHOICE = ' '

    • DISPLAY = ' '

    • CALLBACK_PROGRAM = ' '

    • CALLBACK_FORM = ' '

    • MARK_TAB =

    • IMPORTING

    • USER_RESET =

  • TABLES

  • value_tab = it_usnam

    • field_tab = it_usnam.

    • return_tab = l_it_ret

    • DYNPFLD_MAPPING =

    • EXCEPTIONS

    • PARAMETER_ERROR = 1

    • NO_VALUES_FOUND = 2

    • OTHERS = 3

*.

*

*ENDFORM. " f_f4help_usnam

&----


*& Form f_f4help_wbs

&----


  • To create F4 help for wbs element

----


  • -->P_0039 text

----


*FORM f_f4help_wbs USING value(p_0039) TYPE any.

**// To retrive wbs element from mseg

  • SELECT pspel

  • FROM pspl

  • INTO TABLE it_wbs.

*

  • SORT:it_wbs BY wbs.

  • DELETE ADJACENT DUPLICATES FROM it_wbs COMPARING wbs.

*

  • CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

  • EXPORTING

    • DDIC_STRUCTURE = ' '

  • retfield = c_retwbs

    • PVALKEY = ' '

  • dynpprog = c_dynpprog

  • dynpnr = c_dynpnr

  • dynprofield = p_0039

    • STEPL = 0

    • WINDOW_TITLE =

    • VALUE = ' '

  • value_org = c_s

    • MULTIPLE_CHOICE = ' '

    • DISPLAY = ' '

    • CALLBACK_PROGRAM = ' '

    • CALLBACK_FORM = ' '

    • MARK_TAB =

    • IMPORTING

    • USER_RESET =

  • TABLES

  • value_tab = it_wbs

    • FIELD_TAB =

    • return_tab = l_it_ret1

    • DYNPFLD_MAPPING =

    • EXCEPTIONS

    • PARAMETER_ERROR = 1

    • NO_VALUES_FOUND = 2

    • OTHERS = 3

*.

*

*ENDFORM. " f_f4help_wbs

Regards,

Sudha

Read only

venkat_o
Active Contributor
0 Likes
770

Hi Sakti, Check this sample program. it works fine. It is suitable for your requirement. Change accordingly table and fields for ur requirement.

REPORT ZVENKAT_F4_FOR_PARAMETERS MESSAGE-ID zmsg .
*&---------------------------------------------------------------------*
" Declaration part
*&---------------------------------------------------------------------*
TYPES:
   BEGIN OF t_t001w,
     werks       TYPE t001w-werks,
     name1       TYPE t001w-name1,
   END OF t_t001w,
   t_return_tab  TYPE ddshretval.
DATA:
    w_t001w      TYPE t_t001w,
    w_return_tab TYPE t_return_tab.
DATA:
    i_t001w      TYPE STANDARD TABLE OF t_t001w,
    i_return_tab TYPE STANDARD TABLE OF t_return_tab.
*&---------------------------------------------------------------------*
"SELECTION-SCREEN
*&---------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :p_werks TYPE t001w-werks,
            p_name1 TYPE t001w-name1.
SELECTION-SCREEN END OF BLOCK b1.

*&---------------------------------------------------------------------*
" AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_werks
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_werks.
  PERFORM f4_help_for_palant.

*&---------------------------------------------------------------------*
*&      Form  f4_help_for_palant
*&---------------------------------------------------------------------*
FORM f4_help_for_palant.

  DATA:
      w_dynpfields TYPE dynpread,
      i_dynpfields LIKE STANDARD TABLE OF dynpread.

  IF i_t001w[] IS INITIAL.
    SELECT werks name1
    FROM t001w
    INTO TABLE i_t001w.
  ENDIF.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
*   DDIC_STRUCTURE         = ' '
    retfield               = 'WERKS'
*   PVALKEY                = ' '
    dynpprog               = sy-repid
    dynpnr                 = sy-dynnr
    dynprofield            = 'P_WERKS'
*   STEPL                  = 0
*   WINDOW_TITLE           =
*   VALUE                  = ' '
   value_org              = 'S'
*   MULTIPLE_CHOICE        = ' '
*   DISPLAY                = ' '
*   CALLBACK_PROGRAM       = ' '
*   CALLBACK_FORM          = ' '
*   MARK_TAB               =
* IMPORTING
*   USER_RESET             =
    TABLES
      value_tab              = i_t001w
*   FIELD_TAB              =
    return_tab             = i_return_tab
*   DYNPFLD_MAPPING        =
* 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.
  ENDIF.
  READ TABLE i_return_tab INTO w_return_tab INDEX 1.
  p_werks = w_return_tab-fieldval.
  READ TABLE i_t001w INTO w_t001w WITH KEY werks = p_werks.
  IF sy-subrc = 0.

    w_dynpfields-fieldname    = 'P_NAME1'.
    w_dynpfields-fieldvalue   = w_t001w-name1.
    APPEND w_dynpfields TO i_dynpfields.
    CLEAR w_dynpfields.

    CALL FUNCTION 'DYNP_VALUES_UPDATE'
      EXPORTING
        dyname               = sy-repid
        dynumb               = sy-dynnr
      TABLES
        dynpfields           = i_dynpfields
      EXCEPTIONS
        invalid_abapworkarea = 1
        invalid_dynprofield  = 2
        invalid_dynproname   = 3
        invalid_dynpronummer = 4
        invalid_request      = 5
        no_fielddescription  = 6
        undefind_error       = 7
        OTHERS               = 8.
    IF sy-subrc = 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.


  ENDIF.


ENDFORM.                    " f4_help_for_palant
I hope that it solves ur problem. Regards, Venkat.O