SAP Program/ABAP

Search Help 를 parameter setting 해서 사용하는 방법

유부사모 2017. 3. 15. 16:19

SAP Search Help를 사용할때 이미 선택된 어떤 값을 search help의 parameter 로

지정해서 search help 띄우는 방법.


- 해당 필드에 대해서 on value-request event에서 search help 띄우도록 지정


PROCESS ON VALUE-REQUEST.
  FIELD p_lgort MODULE f4_help_lgort.



- tabname : search help를 가지고 있는 table

  fieldname : search help를 가지고 있는 table의 field

  searchhelp : search help name

  shlpparam : search help에서 읽어올 field 이름

  dynpprog, dynpnr, dynprofield : 읽어온 field 값을 setting 할 화면, 필드

  callback_form : parameter setting을 지정하는 부분.



MODULE f4_help_lgort INPUT.

  DATAreturn_tab TYPE TABLE OF ddshretval WITH HEADER LINE.

  CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
    EXPORTING
      tabname           'RESB'
      fieldname         'LGORT'
      searchhelp        'H_T001L' "search help 이름
      shlpparam         'LGORT'   "search help에서 가져올 필드
      dynpprog          sy-repid
      dynpnr            sy-dynnr
      dynprofield       'P_LGORT'
      callback_program  sy-repid
      callback_form     'CALLB_VALUE_REQUEST'
    TABLES
      return_tab        return_tab
    EXCEPTIONS
      field_not_found   1
      no_help_for_field 2
      inconsistent_help 3
      no_values_found   4
      OTHERS            5.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

*  CHECK sy-subrc = 0.
*  READ TABLE return_tab INDEX 1.
*  p_lgort = return_tab-fieldval. "위의 dynprofield 를 지정하면 이로직 필요 없음.

ENDMODULE.




FORM callb_value_request  TABLES   record_tab STRUCTURE seahlpres
                          CHANGING shlp TYPE shlp_descr_t
                                   callcontrol LIKE ddshf4ctrl.

  DATAls_selopt    LIKE LINE OF shlp-selopt.

  ls_selopt-shlpfield 'WERKS'.
  ls_selopt-sign      'I'.
  ls_selopt-option    'EQ'.
  ls_selopt-low       p_werks.

  APPEND ls_selopt TO shlp-selopt .

ENDFORM.