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

search help behaviour

Former Member
0 Likes
330

Hi,

i have created an elemnetary serach help in se11.

i used it in my selection screen like this:

PARAMETER p_popul LIKE MY_TABLE-m__filed.

I have to use this parameter in the evenment :

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_doc

Could you explain me please :

when i select p_popul in my matchcode only by clicking, this parameter is always empty in the evenmenet mentioned before.

but when i select p_popul by clicking and after i press enter, this parameter is not empty in the mentioned evenment and contain the value i have selected.

Is it normal? how can i do to have to have p_popul not empty only by clicking selection (without pressing ENTER button).

Best regards

1 ACCEPTED SOLUTION
Read only

venkat_o
Active Contributor
0 Likes
300

Hi abybak, <li> You do not need to press ENTER to get p_popul in the event AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_doc . <li> Use DYNP_VALUES_READ fm to in the event AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_doc like below.

 REPORT ztest_notepad.

DATA: BEGIN OF it_marc OCCURS 0,
        matnr TYPE marc-matnr,
        werks TYPE marc-werks,
      END OF it_marc.
DATA:it_dynpread TYPE TABLE OF dynpread,
     wa_dynpread LIKE LINE OF it_dynpread.
DATA: it_return_tab TYPE ddshretval OCCURS 0,
      wa_return LIKE LINE OF it_return_tab.
PARAMETERS:
        p_werks TYPE marc-werks,
        p_matnr TYPE marc-matnr.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr.

  wa_dynpread-fieldname = 'P_WERKS'.
  APPEND wa_dynpread TO it_dynpread.
  CLEAR  wa_dynpread.
 "DYNP_VALUES_READ read screen
  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname     = sy-repid
      dynumb     = sy-dynnr
    TABLES
      dynpfields = it_dynpread.
  READ TABLE it_dynpread INTO wa_dynpread INDEX 1.
  p_werks = wa_dynpread-fieldvalue.
  IF it_marc[] IS INITIAL.
    SELECT * FROM marc INTO CORRESPONDING FIELDS OF TABLE it_marc WHERE werks = p_werks.
  ENDIF.
  "F4 help F4IF_INT_TABLE_VALUE_REQUEST
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'MATNR'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'P_MATNR'
      value_org   = 'S'
    TABLES
      value_tab   = it_marc
      return_tab  = it_return_tab.
  IF sy-subrc EQ 0.
    READ TABLE it_return_tab INTO wa_return INDEX 1.
    IF sy-subrc EQ 0.
      p_matnr = wa_return-fieldval.
    ENDIF.
  ENDIF. 
Thanks,Venkat.O

2 REPLIES 2
Read only

venkat_o
Active Contributor
0 Likes
301

Hi abybak, <li> You do not need to press ENTER to get p_popul in the event AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_doc . <li> Use DYNP_VALUES_READ fm to in the event AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_doc like below.

 REPORT ztest_notepad.

DATA: BEGIN OF it_marc OCCURS 0,
        matnr TYPE marc-matnr,
        werks TYPE marc-werks,
      END OF it_marc.
DATA:it_dynpread TYPE TABLE OF dynpread,
     wa_dynpread LIKE LINE OF it_dynpread.
DATA: it_return_tab TYPE ddshretval OCCURS 0,
      wa_return LIKE LINE OF it_return_tab.
PARAMETERS:
        p_werks TYPE marc-werks,
        p_matnr TYPE marc-matnr.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr.

  wa_dynpread-fieldname = 'P_WERKS'.
  APPEND wa_dynpread TO it_dynpread.
  CLEAR  wa_dynpread.
 "DYNP_VALUES_READ read screen
  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname     = sy-repid
      dynumb     = sy-dynnr
    TABLES
      dynpfields = it_dynpread.
  READ TABLE it_dynpread INTO wa_dynpread INDEX 1.
  p_werks = wa_dynpread-fieldvalue.
  IF it_marc[] IS INITIAL.
    SELECT * FROM marc INTO CORRESPONDING FIELDS OF TABLE it_marc WHERE werks = p_werks.
  ENDIF.
  "F4 help F4IF_INT_TABLE_VALUE_REQUEST
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'MATNR'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'P_MATNR'
      value_org   = 'S'
    TABLES
      value_tab   = it_marc
      return_tab  = it_return_tab.
  IF sy-subrc EQ 0.
    READ TABLE it_return_tab INTO wa_return INDEX 1.
    IF sy-subrc EQ 0.
      p_matnr = wa_return-fieldval.
    ENDIF.
  ENDIF. 
Thanks,Venkat.O

Read only

Former Member
0 Likes
300

Thanks Venkat

it's works fine now.

Thanks again