ALVドロップダウンリストやヘルプを検索

*&------------------------------------------------ * ---------------------
*レポートZ_SALAH_COL_LISTBOX_HELP&
*&---------------------- ----------------------------------------------- *
*&
*&------------------------------------------------ * ---------------------
REPORT Z_SALAH_COL_LISTBOX_HELP
************************************************************ *********************************************
* REPORTはDESCRIBE:ALVを列のドロップダウンリストやヘルプを検索
* DEVELOPER:サラは
* DEVELOP DATE:20191014
* MODIFYのDATE:
* FUNCTION SPEC:
* USERのKEY:
*********************** ***********************************************
TYPE-POOLS :SLIS

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


DATA GT_01  TYPE  STANDARD  TABLE  TYP_01 OF
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
データ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  GT_EVENTS OF


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

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


FRM_LISTBOX_DATAを行います

IS_FIELDCAT -FIELDNAME  'FIELD01'
IS_FIELDCAT - EDIT  'X'
IS_FIELDCAT -REF_TABLE  'MAKT' 「ʹÓòο¼±íºÍ²Î¿¼×Ö¶ÎÊμÏÖÁÐËÑË÷°IOU
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
*例外を
* LIST_TYPE_WRONG = 1
* OTHERS = 2
  
IF SY -SUBRC <>  0
*ここでのハンドリングに適したエラーを実装
ENDIFを

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





CALLの  FUNCTION  'REUSE_ALV_GRID_DISPLAY_LVC'
  輸出し
* 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
*例外
* PROGRAM_ERROR = 1
* OTHERS = 2
  
IF SY -SUBRC <>  0
*ここでのハンドリングに適したエラーを実装
ENDIFを


FORM FRM_LISTBOX  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
    輸出し
      IT_DROP_DOWN  = GT_DDVAL
ENDFORM
*&------------------------------------------------ --------------------- *
*&フォームFRM_LISTBOX_DATA
*&---------------------- ----------------------------------------------- *
*テキスト
* ------------------------------------------------- --------------------- *
* - > P1のテキスト
* < - p2のテキスト
* --------------- -------------------------------------------------- ----- *
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  GS_01 FROM  DD_HANDLEを輸送
  ENDLOOP

ENDFORM

おすすめ

転載: www.cnblogs.com/salah/p/11935458.html