ALV drop-down list and search help

* & ------------------------------------------------ * ---------------------
* Report Z_SALAH_COL_LISTBOX_HELP &
* & ---------------------- ----------------------------------------------- *
* &
* & ------------------------------------------------ * ---------------------
the REPORT Z_SALAH_COL_LISTBOX_HELP .
************************************************************ *********************************************
* the REPORT DESCRIBE: the ALV column drop-down list and search for help
* DEVELOPER: SALAH
* DEVELOP DATE: 20,191,014
* MODIFY DATE:
* FUNCTION SPEC:
* the USER KEY:
*********************** ***********************************************
the TYPE-POOLS : SLIS .

TYPES : BEGIN  OF TYP_01,
        FIELD01   TYPE CHAR18,
        FIELD02   TYPE CHAR20,
        DD_HANDLE TYPE INT4"ÓÃÓÚ¿ØÖÆÏÂÀ­Áбí±êʶ
      END OF TYP_01.


DATA GT_01 TYPE STANDARD TABLE OF TYP_01.
DATA GS_01 TYPE TYP_01.

DATA IT_FIELDCAT TYPE LVC_T_FCAT .
DATA IS_FIELDCAT TYPE LVC_S_FCAT .
DATA IS_LAYOUT TYPE LVC_S_LAYO.
DATA IS_GRID_SET TYPE LVC_S_GLAY.

DATA:GT_DDVAL TYPE LVC_T_DROP,
     GS_DDVAL TYPE LVC_S_DROP.

DATA: GT_EVENTS TYPE SLIS_T_EVENT,
      GS_EVENT  LIKE LINE OF GT_EVENTS.


GS_01-FIELD01 ''.
GS_01-FIELD02 ''.
APPEND GS_01 TO GT_01.

GS_01-FIELD01 ''.
GS_01-FIELD02 ''.
APPEND GS_01 TO GT_01.


PERFORM FRM_LISTBOX_DATA.

IS_FIELDCAT-FIELDNAME 'FIELD01'.
IS_FIELDCAT-EDIT 'X'.
IS_FIELDCAT-REF_TABLE 'MAKT'."ʹÓòο¼±íºÍ²Î¿¼×Ö¶ÎʵÏÖÁÐËÑË÷°ïÖú
IS_FIELDCAT-REF_FIELD 'MATNR'.
IS_FIELDCAT-SCRTEXT_L 'HELPÊý¾Ý'.
APPEND IS_FIELDCAT TO IT_FIELDCAT.
CLEAR IS_FIELDCAT.
IS_FIELDCAT-FIELDNAME 'FIELD02'.
IS_FIELDCAT-EDIT 'X'.
IS_FIELDCAT-DRDN_FIELD 'DD_HANDLE'.
IS_FIELDCAT-SCRTEXT_L 'LISTBOXÊý¾Ý'.
APPEND IS_FIELDCAT TO IT_FIELDCAT.
CLEAR IS_FIELDCAT.



IS_GRID_SET-EDT_CLL_CB 'X'.


IS_LAYOUT-CWIDTH_OPT 'X'.

**********************************************************************
*ÏÂÀ­¿òÉèÖÃ
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
*   EXPORTING
*     I_LIST_TYPE           = 0
  IMPORTING
    ET_EVENTS = GT_EVENTS
*   EXCEPTIONS
*   LIST_TYPE_WRONG       = 1
*   OTHERS    = 2
  .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

LOOP AT GT_EVENTS INTO GS_EVENT .
  IF GS_EVENT-NAME 'CALLER_EXIT'.
    GS_EVENT-FORM 'FRM_LISTBOX'.
    MODIFY GT_EVENTS FROM GS_EVENT INDEX SY-TABIX.
  ENDIF.
ENDLOOP.





CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
*   I_INTERFACE_CHECK  = ' '
*   I_BYPASSING_BUFFER =
*   I_BUFFER_ACTIVE    =
    I_CALLBACK_PROGRAM = SY-REPID
 "  i_callback_pf_status_set = 'FRM_PF_STATUS'
    "i_callback_user_command  = 'FRM_USERCOMM'
*   I_CALLBACK_TOP_OF_PAGE   = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME   =
*   I_BACKGROUND_ID    = ' '
*   I_GRID_TITLE       =
    I_GRID_SETTINGS    = IS_GRID_SET
    IS_LAYOUT_LVC      = IS_LAYOUT
    IT_FIELDCAT_LVC    = IT_FIELDCAT
*   IT_EXCLUDING       =
*   IT_SPECIAL_GROUPS_LVC    =
*   IT_SORT_LVC        =
*   IT_FILTER_LVC      =
*   IT_HYPERLINK       =
*   IS_SEL_HIDE        =
*   I_DEFAULT          = 'X'
  " I_SAVE             = ' '
*   IS_VARIANT         =
    IT_EVENTS          = GT_EVENTS
*   IT_EVENT_EXIT      =
*   IS_PRINT_LVC       =
*   IS_REPREP_ID_LVC   =
*   I_SCREEN_START_COLUMN    = 0
*   I_SCREEN_START_LINE      = 0
*   I_SCREEN_END_COLUMN      = 0
*   I_SCREEN_END_LINE  = 0
*   I_HTML_HEIGHT_TOP  =
*   I_HTML_HEIGHT_END  =
*   IT_ALV_GRAPHICS    =
*   IT_EXCEPT_QINFO_LVC      =
*   IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*   E_EXIT_CAUSED_BY_CALLER  =
*   ES_EXIT_CAUSED_BY_USER   =
  TABLES
    T_OUTTAB           = GT_01
*   EXCEPTIONS
*   PROGRAM_ERROR      = 1
*   OTHERS             = 2
  .
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.


FORM FRM_LISTBOX USING LS_DATA TYPE SLIS_DATA_CALLER_EXIT.
  DATA: L_REF_ALV TYPE REF TO CL_GUI_ALV_GRID.
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = L_REF_ALV.

  CALL METHOD L_REF_ALV->SET_DROP_DOWN_TABLE
    EXPORTING
      IT_DROP_DOWN = GT_DDVAL.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_LISTBOX_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_LISTBOX_DATA .

  GS_DDVAL-HANDLE 1.
  GS_DDVAL-VALUE  'A'.
  APPEND GS_DDVAL TO GT_DDVAL.
  GS_DDVAL-HANDLE 1.
  GS_DDVAL-VALUE  'B'.
  APPEND GS_DDVAL TO GT_DDVAL.
  LOOP AT GT_01 INTO GS_01 .
    GS_01-DD_HANDLE 1.
    MODIFY GT_01 FROM GS_01 TRANSPORTING DD_HANDLE.
  ENDLOOP.

ENDFORM.

Guess you like

Origin www.cnblogs.com/salah/p/11935458.html