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

how to write at selection screen process on value request

Former Member
0 Likes
415

how to write at selection screen process on value request on a field

3 REPLIES 3
Read only

Former Member
0 Likes
386

Hi Srinivas,

Sample code,

PARAMETERS : p_carr(2) TYPE c.

DATA: BEGIN OF fs_sflight OCCURS 0,

carrid TYPE dfies-fieldname,

END OF fs_sflight.

DATA : r_carr TYPE TABLE OF ddshretval WITH HEADER LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_carr.

APPEND 'AA' TO fs_sflight.

APPEND 'LH' TO fs_sflight.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'CARRID'

dynpprog = sy-repid

dynpnr = '1000'

dynprofield = 'P_CARR'

window_title = 'carrier'

value_org = 'S'

TABLES

value_tab = fs_sflight[]

return_tab = r_carr[].

Regards

Adil

Read only

Former Member
0 Likes
386

check this code

**********************************************************************************************************************************************
*TO GET THE DOCUMENT TYPE AND CREATION DATE BASED ON THE PURCHASE DOCUMENT NO
********************************************************************************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_DOC.

  CHECK NOT SO_DOC IS INITIAL.

  SELECT BSART FROM EKKO INTO TABLE I_TYP
                    WHERE EBELN IN SO_DOC.

  SORT I_TYP BY BSART.

  DELETE ADJACENT DUPLICATES FROM I_TYP.

  CLEAR:VALUE_TAB,FIELD_TAB,RETURN_TAB.

  REFRESH:VALUE_TAB,FIELD_TAB,RETURN_TAB.

  FIELD_TAB-FIELDNAME = 'BSART'.

  FIELD_TAB-TABNAME = 'EKKO'.

  APPEND FIELD_TAB.

  LOOP AT I_TYP.

    VALUE_TAB-BSART = I_TYP-BSART.

    APPEND VALUE_TAB.

  ENDLOOP.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD        = FIELD_TAB-FIELDNAME
    TABLES
      VALUE_TAB       = VALUE_TAB
      FIELD_TAB       = FIELD_TAB
      RETURN_TAB      = RETURN_TAB
    EXCEPTIONS
      PARAMETER_ERROR = 1
      NO_VALUES_FOUND = 2
      OTHERS          = 3.
  IF SY-SUBRC  = 0.

    P_DOC = RETURN_TAB-FIELDVAL.

  ENDIF.

***********************************************************************************************************************************************
* TO GET THE CREATION DATE BASED ON THE PURCHASE DOCUMENT NO
*********************************************************************************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_DATE-LOW.

  CHECK NOT SO_DOC IS INITIAL.

  SELECT AEDAT FROM EKKO INTO TABLE I_DATE
                WHERE EBELN IN SO_DOC.


  SORT I_DATE BY AEDAT.

  DELETE ADJACENT DUPLICATES FROM I_DATE.

  CLEAR:VALUE_TAB1,FIELD_TAB,RETURN_TAB.

  REFRESH: VALUE_TAB1,FIELD_TAB,RETURN_TAB.

  FIELD_TAB-FIELDNAME = 'AEDAT'.

  FIELD_TAB-TABNAME = 'EKKO'.

  APPEND FIELD_TAB.

  LOOP AT I_DATE.

    VALUE_TAB1-AEDAT = I_DATE-AEDAT.

    APPEND VALUE_TAB1.

  ENDLOOP.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD        = FIELD_TAB-FIELDNAME
    TABLES
      VALUE_TAB       = VALUE_TAB1
      FIELD_TAB       = FIELD_TAB
      RETURN_TAB      = RETURN_TAB
    EXCEPTIONS
      PARAMETER_ERROR = 1
      NO_VALUES_FOUND = 2
      OTHERS          = 3.
  CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'
    EXPORTING
      INPUT  = RETURN_TAB-FIELDVAL
    IMPORTING
      OUTPUT = RETURN_TAB-FIELDVAL.
  IF SY-SUBRC = 0.

    SO_DATE-LOW = RETURN_TAB-FIELDVAL.

  ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR SO_DATE-HIGH.

  CHECK NOT SO_DOC IS INITIAL.

  SELECT AEDAT FROM EKKO INTO TABLE I_DATE
                WHERE EBELN IN SO_DOC.


  SORT I_DATE BY AEDAT.

  DELETE ADJACENT DUPLICATES FROM I_DATE.

  CLEAR:VALUE_TAB1,FIELD_TAB,RETURN_TAB.

  REFRESH: VALUE_TAB1,FIELD_TAB,RETURN_TAB.

  FIELD_TAB-FIELDNAME = 'AEDAT'.

  FIELD_TAB-TABNAME = 'EKKO'.

  APPEND FIELD_TAB.

  LOOP AT I_DATE.

    VALUE_TAB1-AEDAT = I_DATE-AEDAT.

    APPEND VALUE_TAB1.

  ENDLOOP.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD        = FIELD_TAB-FIELDNAME
    TABLES
      VALUE_TAB       = VALUE_TAB1
      FIELD_TAB       = FIELD_TAB
      RETURN_TAB      = RETURN_TAB
    EXCEPTIONS
      PARAMETER_ERROR = 1
      NO_VALUES_FOUND = 2
      OTHERS          = 3.
  IF SY-SUBRC = 0.

    SO_DATE-HIGH = RETURN_TAB-FIELDVAL.

  ENDIF.

********************************************************************************************************************************************
*                          INITIALIZATION OF VALUES
********************************************************************************************************************************************
INITIALIZATION.

  SO_DOC-LOW =  '3000000004'.

  SO_DOC-HIGH = '6000000004'.

  SO_DOC-OPTION = 'BT'.

  SO_DOC-SIGN = 'I'.

  APPEND SO_DOC.

Read only

Former Member
0 Likes
386

Hi,

This event is fired when the user hits F4 on the field. This is used to provide F4 Help for the field. Here is a sample program.

code

report zrich_0001 .

tables: t001.

data: begin of it001 occurs 0,

bukrs type t001-bukrs,

butxt type t001-butxt,

ort01 type t001-ort01,

land1 type t001-land1,

end of it001.

select-options s_bukrs for t001-bukrs.

initialization.

select bukrs butxt ort01 land1 into table it001 from t001.

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

call function 'F4IF_INT_TABLE_VALUE_REQUEST'

exporting

retfield = 'BUKRS'

dynprofield = 'S_BUKRS'

dynpprog = sy-cprog

dynpnr = sy-dynnr

value_org = 'S'

tables

value_tab = it001.

start-of-selection.

[/code]

Regards,

Raj.