ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ALV常用界面刷新方式

2021-01-14 11:04:32  阅读:474  来源: 互联网

标签:GT 界面 FIELDCAT EVENT 刷新 ALV GS DATA LAYOUT


REPORT YLTL_TEST.

TYPES: BEGIN OF TY_DATA,
         SEL   TYPE ABAP_BOOL,
         COL01 TYPE STRING,
         COL02 TYPE STRING,
         COL03 TYPE STRING,
       END OF TY_DATA.

DATA GO_ALV TYPE REF TO CL_GUI_ALV_GRID.

DATA GT_DATA TYPE TABLE OF TY_DATA WITH HEADER LINE.
DATA GS_STABLE TYPE LVC_S_STBL.
DATA GS_LAYOUT TYPE LVC_S_LAYO.
DATA GT_FIELDCAT TYPE LVC_T_FCAT.
DATA GS_FIELDCAT TYPE LVC_S_FCAT.
DATA GT_EVENT TYPE SLIS_T_EVENT.
DATA GS_EVENT TYPE SLIS_ALV_EVENT.

DEFINE %%FILL_DATA.
  CLEAR GT_DATA.
  GT_DATA-COL01 = &1.
  GT_DATA-COL02 = &2.
  GT_DATA-COL03 = &3.
  APPEND GT_DATA.
END-OF-DEFINITION.

DEFINE %%FILL_FIELDCAT.
  CLEAR GS_FIELDCAT.
  GS_FIELDCAT-FIELDNAME = &1.
  GS_FIELDCAT-SCRTEXT_M = &2.
  GS_FIELDCAT-EDIT = &3.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION.

START-OF-SELECTION.

  %%FILL_DATA '调用SET_FRONTEND_LAYOUT方法并将新的LAYOUT填入参数即可' '调用SET_LDCAT填入参数即可' '调用SED_FIELDFICAT填即可'.
  %%FILL_DATA '调用SET_FRONTEND_LA2UT方法并将新的LAYOUT填入参数即可' '调用SET_FRONTEND_FDC参数即可' '调用SET_4IELDCLDC数即可'.
  %%FILL_DATA '调用SET_FRONTEND_LAYOU1方法并将新的LAYOUT填入参数即可' '调用SET_FROCAT填入参数即可' '调用S并将新的F即可'.

END-OF-SELECTION.

  GS_LAYOUT-ZEBRA             = 'X'.

  GS_EVENT-NAME = 'CALLER_EXIT'.
  GS_EVENT-FORM = 'CALLER_EXIT'.
  APPEND GS_EVENT TO GT_EVENT.

  %%FILL_FIELDCAT 'COL01' 'COL01' ''.
  %%FILL_FIELDCAT 'COL02' 'COL02' ''.
  %%FILL_FIELDCAT 'COL03' 'COL03' ''.

  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 = 'PF_STATUS_SET'
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
*     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_LAYOUT_LVC            = GS_LAYOUT
      IT_FIELDCAT_LVC          = GT_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_EVENT
*     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_DATA
*   EXCEPTIONS
*     PROGRAM_ERROR            = 1
    .

*&---------------------------------------------------------------------*
*& Form PF_STATUS_SET
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.
  SET PF-STATUS 'ALV_STANDARD' EXCLUDING RT_EXTAB.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM USER_COMMAND USING I_UCOMM LIKE SY-UCOMM
                    IS_SELFIELD TYPE SLIS_SELFIELD.
  CASE I_UCOMM.
    WHEN 'U1'.
      %%FILL_DATA '调用SET_FRONTEND_LAYOU1方法并将新的LAYOUT填入参数即可' '调用SET_FRONTEND_FI2DC' '调用SET_4RONTEND_F即可'.
      GS_STABLE-ROW = '1'.
      GS_STABLE-COL = '1'.

      CALL METHOD GO_ALV->REFRESH_TABLE_DISPLAY
        EXPORTING
          IS_STABLE = GS_STABLE.
    WHEN 'U2'.
      GS_LAYOUT-BOX_FNAME = 'SEL'.
      GS_LAYOUT-SEL_MODE   = 'A'.
      GS_LAYOUT-CWIDTH_OPT = 'X'.
      GS_LAYOUT-NO_TOOLBAR = 'X'.
      CALL METHOD GO_ALV->SET_FRONTEND_LAYOUT
        EXPORTING
          IS_LAYOUT = GS_LAYOUT.

    WHEN 'U3'.
      REFRESH GT_FIELDCAT.

      %%FILL_FIELDCAT 'COL01' '列1' 'X'.
      %%FILL_FIELDCAT 'COL02' '列2' 'X'.
      %%FILL_FIELDCAT 'COL03' '列3' 'X'.

      CALL METHOD GO_ALV->SET_FRONTEND_FIELDCATALOG
        EXPORTING
          IT_FIELDCATALOG = GT_FIELDCAT.
  ENDCASE.

  IS_SELFIELD-REFRESH = 'X'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALLER_EXIT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM CALLER_EXIT USING U_EXIT TYPE SLIS_DATA_CALLER_EXIT.
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      E_GRID = GO_ALV.
*注册编辑响应事件
  CALL METHOD GO_ALV->REGISTER_EDIT_EVENT
    EXPORTING
      I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER  "按enter键
    EXCEPTIONS
      ERROR      = 1
      OTHERS     = 2.

  CALL METHOD GO_ALV->REGISTER_EDIT_EVENT
    EXPORTING
      I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED  "光标移动
    EXCEPTIONS
      ERROR      = 1
      OTHERS     = 2.
ENDFORM.

标签:GT,界面,FIELDCAT,EVENT,刷新,ALV,GS,DATA,LAYOUT
来源: https://blog.csdn.net/qq_33539438/article/details/112602285

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有