0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ALV 検索ヘルプ

Posted at

DATA: gr_alv_grid TYPE REF TO cl_gui_alv_grid,
      gr_f4_handler TYPE REF TO lcl_f4_handler.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
  IMPORTING
    e_grid = gr_alv_grid.

IF gr_alv_grid IS BOUND.
  gr_alv_grid->register_f4_for_field(
    EXPORTING
      i_fieldname = 'MATNR'
      i_register  = abap_true ).

  CREATE OBJECT gr_f4_handler.
  SET HANDLER gr_f4_handler->on_f4 FOR gr_alv_grid.
ENDIF.

DATA: gt_fieldcat TYPE lvc_t_fcat,
      gs_fieldcat TYPE lvc_s_fcat,
      gt_data     TYPE STANDARD TABLE OF your_structure,
      gs_layout   TYPE lvc_s_layo.

* 示例:设置字段 F4 可用
gs_fieldcat-fieldname   = 'MATNR'.
gs_fieldcat-ref_field   = 'MATNR'.
gs_fieldcat-ref_table   = 'MARA'.
gs_fieldcat-f4availabl  = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.

gs_layout-cwidth_opt = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
    i_callback_program       = sy-repid
    i_callback_user_command  = 'USER_COMMAND'
    is_layout_lvc            = gs_layout
    it_fieldcat_lvc          = gt_fieldcat
    i_structure_name         = 'YOUR_STRUCTURE'
  TABLES
    t_outtab                 = gt_data
  EXCEPTIONS
    program_error            = 1
    OTHERS                   = 2.
CLASS lcl_f4_handler DEFINITION.
  PUBLIC SECTION.
    INTERFACES: if_alv_event_f4.
ENDCLASS.

CLASS lcl_f4_handler IMPLEMENTATION.

  METHOD if_alv_event_f4~on_f4.

    DATA: lt_return TYPE STANDARD TABLE OF ddshretval,
          ls_return TYPE ddshretval,
          lt_values TYPE TABLE OF ty_value,
          lv_value  TYPE string.

    SELECT matnr maktx INTO TABLE lt_values FROM mara INNER JOIN makt ON mara~matnr = makt~matnr UP TO 100 ROWS.

    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
      EXPORTING
        retfield    = 'MATNR'
        value_org   = 'S'
      TABLES
        value_tab   = lt_values
        return_tab  = lt_return.

    READ TABLE lt_return INTO ls_return INDEX 1.
    IF sy-subrc = 0.
      e_fieldvalue = ls_return-fieldval.
      e_display = abap_true.
    ENDIF.

    e_exit = abap_true.

  ENDMETHOD.

ENDCLASS.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?