SAP: ALV GRID 控制之 单元格按钮
工作区域(或内部表)“GT_SFLIGHT”不是扁平的,或者包含参考或内部表作为组件。Is not flat, or contains
Reference or internal tables as components or internal tables as components. As components.
解决方式:
将 SELECT * FROM SFLIGHT
INTO TABLE gt_sflight UP TO 40 ROWS .
改为:
SELECT * FROM SFLIGHT
INTO CORRESPONDING FIELDS OF TABLE gt_sflight UP TO 40 ROWS .
1、主程序
*&---------------------------------------------------------------------*
*& Report Z15_23
*& 可执行程序
*&---------------------------------------------------------------------*
*&
*& 创建 ALV GRID 容器
*& 注意每个程序都需要激活方可执行
*& 实现刷新按钮的 刷新事件。
*& 实现使用字段目录
*& 使用FIELD SYMBOL 功能设置字段显示背景颜色
*& DATA: LIGHT TYPE C. 信号灯。
*& COLORING ROWS: 颜色行
*& CellBtn 单元格按钮
*&---------------------------------------------------------------------*
REPORT Z15_23.
TYPE-POOLS: icon. "" 声明图标
*& 内表结构类型 :开始
TYPES: BEGIN OF t_str.
INCLUDE STRUCTURE sflight .
TYPES: company type c LENGTH 6.
TYPES: END OF t_str.
*& 内表结构类型 :结束
DATA: CON1_REF TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
" 定义容器, 参照 自定义控件"其中自定义控件命名为CON1
DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID. "定义ALV变量,
*& 参照 CL_GUI_ALV_GRID类"
DATA: GS_VARIANT like DISVARIANT, "" 列表变量
gs_cs_variant like disvariant.
*& DATA: GT_SFLIGHT TYPE TABLE OF SFLIGHT. " 要显示在屏幕上的内表
DATA: gs_layout type lvc_s_layo .
DATA: gt_toolbar TYPE ui_functions .
DATA: gt_sort TYPE lvc_t_sort. " 排序
DATA: gt_fieldcat type lvc_t_fcat. " 声明字段目录变量
*DATA: gt_sflight TYPE TABLE OF T_STR.
*DATA: gt_sflight like sflight occurs 0 WITH HEADER LINE.
*DATA: BEGIN OF gt_sflight OCCURS 0 .
* INCLUDE STRUCTURE sflight.
*DATA: light TYPE c. " 信号灯
*DATA: linecolor TYPE c. " 行颜色
*DATA: END OF gt_sflight.
*DATA: BEGIN OF gt_sflight OCCURS 0 .
* INCLUDE STRUCTURE sflight.
*DATA: cellcolor TYPE lvc_t_scol . "单元格颜色
*DATA: END OF gt_sflight.
TYPES: BEGIN OF ty_sflight .
INCLUDE STRUCTURE sflight.
TYPES: cellcolor type lvc_t_scol.
types:END OF ty_sflight. " ty_sflight
data: ls_sflight TYPE ty_sflight occurs 0.
DATA: BEGIN OF gt_sflight OCCURS 0.
INCLUDE STRUCTURE sflight.
DATA: CHK TYPE c.
DATA: CELLBTN TYPE lvc_t_styl. " 单元格按钮
* DATA: cellcolor TYPE lvc_t_scol . "单元格颜色
DATA: END OF gt_sflight. " gt_sflight .
data: gs_sflight like gt_sflight.
PARAMETERS: p_var like disvariant-variant. " 参数变量
*& 设置GRID布局
PERFORM setting_layout CHANGING gs_layout .
*& 设置单元格
PERFORM setting_cell.
*& 根据用户显示或隐藏布局按钮
PERFORM setting_toolbar.
*& 排序
PERFORM setting_sort.
*& 获得字段目录
PERFORM getting_catalog.
*& 调用设置字段目录 setting_catalog
PERFORM setting_catalog.
*& 显示检索帮助
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.
*&
gs_variant-report = sy-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = gs_variant
* I_TABNAME_HEADER =
* I_TABNAME_ITEM =
* IT_DEFAULT_FIELDCAT =
I_SAVE = 'A'
* I_DISPLAY_VIA_GRID = ' '
IMPORTING
* E_EXIT =
ES_VARIANT = gs_variant
EXCEPTIONS
NOT_FOUND = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
p_var = gs_variant-variant .
ENDIF.
FORM setting_layout CHANGING p_layout type lvc_s_layo.
p_layout-cwidth_opt = 'X' . "自动调节长度
p_layout-grid_title = 'Cell Button Test'. "标题栏"
p_layout-sel_mode = 'D'. " 选择模式:可选择多行"
p_layout-zebra = 'X'. "指定条纹(STRIPE)属性"
* p_layout-excp_fname = 'LIGHT'. " 信号灯 字段
* p_layout-info_fname = 'LINECOLOR'. "颜色行
* p_layout-ctab_fname = 'CELLCOLOR'. "单元格颜色
p_layout-stylefname = 'CELLBTN'. " 单元格按钮
ENDFORM. " setting_layout.
*& 根据用户显示或隐藏布局按钮
FORM setting_toolbar.
DATA : l_exclude TYPE UI_FUNC.
l_exclude = cl_gui_alv_grid=>mc_fc_save_variant.
APPEND l_exclude TO gt_toolbar.
l_exclude = cl_gui_alv_grid=>mc_fc_maintain_variant.
APPEND l_exclude TO gt_toolbar.
ENDFORM. " SETTING_TOOLBAR
*& 排序 子程序
FORM setting_sort.
DATA: ls_sort TYPE lvc_s_sort.
ls_sort-spos = '1'. " 排序顺序 ,整形数字
ls_sort-fieldname = 'CARRID'. " 排序字段名称
ls_sort-up = 'X' . " 升序 或 LS_SORT-DOWN = 'X' "降序
ls_sort-subtot = 'X' . " 显示合计
APPEND ls_sort to gt_sort .
ENDFORM. " setting_sort.
*& 获取字段目录的子程序
FORM getting_catalog.
DATA: lt_fieldcat type kkblo_t_fieldcat.
*& 调用函数 (函数组:SKBH)
CALL FUNCTION 'K_KKB_FIELDCAT_MERGE'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_TABNAME = 'GT_SFLIGHT'
* I_STRUCNAME =
I_INCLNAME = SY-REPID
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = LT_FIELDCAT[]
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
IF SY-SUBRC EQ 0.
"调用函数, 函数组:SLVC"
CALL FUNCTION 'LVC_TRANSFER_FROM_KKBLO'
EXPORTING
* I_TECH_COMPLETE =
* I_STRUCTURE_NAME =
IT_FIELDCAT_KKBLO = lt_fieldcat[]
* IT_SORT_KKBLO =
* IT_FILTER_KKBLO =
* IT_SPECIAL_GROUPS_KKBLO =
* IT_FILTERED_ENTRIES_KKBLO =
* IT_GROUPLEVELS_KKBLO =
* IS_SUBTOT_OPTIONS_KKBLO =
* IS_LAYOUT_KKBLO =
* IS_REPREP_ID_KKBLO =
* I_CALLBACK_PROGRAM_KKBLO =
* IT_ADD_FIELDCAT =
* IT_EXCLUDING_KKBLO =
* IT_EXCEPT_QINFO_KKBLO =
IMPORTING
ET_FIELDCAT_LVC = gt_fieldcat[]
* ET_SORT_LVC =
* ET_FILTER_LVC =
* ET_SPECIAL_GROUPS_LVC =
* ET_FILTER_INDEX_LVC =
* ET_GROUPLEVELS_LVC =
* ES_TOTAL_OPTIONS_LVC =
* ES_LAYOUT_LVC =
* ES_VARIANT_LVC =
* E_VARIANT_SAVE_LVC =
* ES_PRINT_INFO_LVC =
* ES_REPREP_LVC =
* E_REPREP_ACTIVE_LVC =
* ET_EXCLUDING_LVC =
* ET_EXCEPT_QINFO_LVC =
* TABLES
* IT_DATA =
* EXCEPTIONS
* IT_DATA_MISSING = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
ENDFORM ." getting_catalog. "
*& 设置字段目录的子程序
FORM setting_catalog.
DATA: ls_fieldcat type lvc_s_fcat. " 声明 字段目录变更
FIELD-SYMBOLS: <ls_fcat> TYPE lvc_s_fcat.
* ls_fieldcat-fieldname = 'COMPANY'.
* ls_fieldcat-coltext = 'Company Info'.
* ls_fieldcat-just = 'C'.
* ls_fieldcat-key = 'X'.
* ls_fieldcat-outputlen = '6'.
*ls_fieldcat-no_out = 'X'. " 不在ALV GRID
*中显示,注意在第一列设置不显示,而第二列以后的列需要显示,则需要在第二列
*&说明显示字段,否则后面字段不显示。
* APPEND ls_fieldcat to gt_fieldcat.
*
* ls_fieldcat-fieldname = 'CARRID'. "" 字段名称
* ls_fieldcat-coltext = 'Carrid ID'. "" 字段显示名称 ,承运方
* ls_fieldcat-just = 'L'. "" 居左
* ls_fieldcat-KEY = 'X'. "" 主键标记
* ls_fieldcat-outputlen = '2'. "" 输出宽度
* ls_fieldcat-no_out = ''. " 显示字段"
* APPEND ls_fieldcat TO gt_fieldcat .
*
* ls_fieldcat-fieldname = 'CONNID'.
* ls_fieldcat-coltext = 'Flight Number'. ""航班号 (连接号)
* ls_fieldcat-just = 'C'. "" 居中
* ls_fieldcat-KEY = 'X'.
* ls_fieldcat-outputlen = '4'.
* APPEND ls_fieldcat TO gt_fieldcat .
*
* ls_fieldcat-fieldname = 'PRICE'.
* ls_fieldcat-coltext = 'Airfare'."" 文本说明(即:字段说明)
* ls_fieldcat-just = 'R'. " 居右
* ls_fieldcat-KEY = ''.
* ls_fieldcat-outputlen = '15'.
* APPEND ls_fieldcat TO gt_fieldcat .
*& 循环内表所有字段
* LOOP AT gt_fieldcat INTO ls_fieldcat.
* if ls_fieldcat-fieldname = 'PRICE'.
* ls_fieldcat-coltext = 'AIR PRICE'.
* ls_fieldcat-just = 'C'.
* ls_fieldcat-emphasize = 'X'." 设置单元格背景色
* MODIFY gt_fieldcat FROM ls_fieldcat.
* ENDIF.
* ENDLOOP.
*& 在ALV GRID中的前四个字段是主键,颜色指定为蓝色且固定了下面主键对应的
*& 滚动条。
LOOP AT gt_fieldcat ASSIGNING <ls_fcat>.
if <ls_fcat>-fieldname EQ 'PRICE'.
<ls_fcat>-key = 'X'. " 将单价字段 设置为主键
ENDIF.
IF <ls_fcat>-fieldname EQ 'FLDATE'.
<ls_fcat>-edit_mask = '____/__/__' . "设置日期格式为: YYYY/MM/DD
ENDIF.
IF <ls_fcat>-fieldname EQ 'CURRENCY'.
<ls_fcat>-fix_column = 'X'. "将 币种 字段设置为固定列
<ls_fcat>-just = 'R'. " 设置对齐方式,R:右对齐,L:左对齐,C:中间对齐。
ENDIF.
endloop.
ENDFORM. " setting_catalog.
FORM setting_cell.
DATA: lt_color TYPE lvc_t_scol,
ls_color TYPE lvc_s_scol, " 单元格颜色 "
lt_cellbtn type lvc_t_styl,
ls_cellbtn type lvc_s_styl, " 单元按钮
ls_fieldcat TYPE lvc_s_fcat,
l_mode TYPE raw4,
l_type(4) TYPE c,
index TYPE i.
*
* " Display cell as 单元格颜色 "
* LOOP AT gt_sflight.
* index = index + 1 .
* CLEAR: lt_color[].
* LOOP AT gt_fieldcat INTO ls_fieldcat.
* CLEAR ls_color.
* ls_color-fname = ls_fieldcat-FIELDNAME.
* IF ls_color-fname EQ 'PLANETYPE'. " 飞机类型
* CASE gt_sflight-planetype.
* WHEN '747-400'.
* ls_color-color-col = 5.
* ls_color-color-int = 0.
* WHEN 'A319'.
* ls_color-color-col = 3.
* ls_color-color-int = 0.
* WHEN 'A310-300'.
* ls_color-color-col = 6.
* ls_color-color-int = 0.
* WHEN OTHERS.
* ENDCASE.
* INSERT ls_color INTO TABLE lt_color.
* ENDIF.
* ENDLOOP.
*
* CLEAR: gt_sflight-cellcolor[].
* INSERT LINES OF lt_color
* INTO TABLE gt_sflight-cellcolor.
* MODIFY gt_sflight INDEX index.
* ENDLOOP. " gt_sflight
*& 显示单元格按钮
* Display cell as PUSHBUTTON
CLEAR index.
LOOP AT gt_sflight .
index = index + 1 .
CLEAR: lt_cellbtn[], ls_cellbtn .
LOOP AT gt_fieldcat INTO ls_fieldcat.
ls_cellbtn-fieldname = ls_fieldcat-fieldname.
IF ls_cellbtn-fieldname EQ 'CHK'.
ls_cellbtn-fieldname = 'CHK'.
ls_cellbtn-style = cl_gui_alv_grid=>mc_style_button.
ENDIF.
INSERT ls_cellbtn INTO TABLE lt_cellbtn.
ENDLOOP.
INSERT LINES OF lt_cellbtn INTO TABLE gt_sflight-cellbtn.
MODIFY gt_sflight INDEX index.
CLEAR gt_sflight.
ENDLOOP.
ENDFORM. " setting_cell
*& 设置 事件
*FORM setting_event.
* CREATE OBJECT event_receiver.
* SET HANDLER event_receiver->handle_button_click FOR g_grid.
*ENDFORM. " SETTING_EVENT
*&
*CLASS lcl_dragdrop DEFINITION.
* PUBLIC SECTION.
* DATA: wa type ty_sflight,
* index type i. " index of line to be move.
*ENDCLASS. " LCL_dragdrop DEFINITION
*&
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
" 声明双击事件方法
METHODS: handle_double_click
FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
IMPORTING e_row e_column.
" 声明 工具栏事件方法
METHODS: handle_toolbar
FOR EVENT toolbar OF CL_GUI_ALV_GRID
IMPORTING e_object e_interactive .
""&声明工具栏的刷新按钮事件方法
METHODS: handle_command
FOR EVENT user_command OF CL_GUI_ALV_GRID
IMPORTING e_ucomm.
""& 声明 拖放方法(Drag & Drop)
METHODS:
handle_alv_drag
FOR EVENT ondrag OF CL_GUI_ALV_GRID
IMPORTING e_row e_column e_dragdropobj,
handle_alv_drop
FOR EVENT ondrop OF CL_GUI_ALV_GRID
IMPORTING e_row e_column e_dragdropobj.
" 单元格按钮点击事件
METHODS: handle_button_click
FOR EVENT button_click OF CL_GUI_ALV_GRID
IMPORTING es_col_id es_row_no.
PRIVATE SECTION. "
ENDCLASS.
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_double_click. "双击事件方法的实现"
LEAVE TO SCREEN 0 .
ENDMETHOD.
" 工具栏事件方法的实现
METHOD handle_toolbar .
DATA: ls_toolbar TYPE stb_button.
CLEAR ls_toolbar.
ls_toolbar-butn_type = 3.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
ls_toolbar-function = 'RESH'.
ls_toolbar-icon = icon_refresh.
ls_toolbar-quickinfo = 'Refresh'.
ls_toolbar-text = ''.
ls_toolbar-disabled = ''.
APPEND ls_toolbar TO e_object->mt_toolbar. " 增加一个 刷新按钮
ENDMETHOD. "" handle_toolbar ”
"& 工具栏刷新按钮的刷新方法的实现
METHOD handle_command.
DATA: l_scroll type lvc_s_stbl.
CASE e_ucomm.
WHEN 'RESH'.
SELECT * FROM SFLIGHT
INTO CORRESPONDING FIELDS OF TABLE gt_sflight UP TO 40 ROWS .
"" 刷新时全表查询
l_scroll-row = 'X'.
l_scroll-col = 'X'.
CALL METHOD g_grid->refresh_table_display
EXPORTING
i_soft_refresh = ''
is_stable = l_scroll.
ENDCASE.
ENDMETHOD. " handle_command.
METHOD handle_alv_drag.
* DATA: l_dragdrop TYPE REF TO lcl_dragdrop.
ENDMETHOD. " handle_alv_drag.
METHOD handle_alv_drop.
* DATA: l_dragdrop TYPE REF TO lcl_dragdrop,
* l_drop_index type i,
* l_scroll type lvc_s_stbl.
" 刷新 ALV GRID 组件
* l_scroll-row = 'X'.
* l_scroll-col = 'X'.
* CATCH SYSTEM-EXCEPTIONS move_cast_error = 1.
* l_dragdrop ?= e_dragdropobj->object.
* CALL METHOD g_grid->refresh_table_display
* EXPORTING
* i_soft_refresh = 'X'
* is_stable = l_scroll.
* ENDCATCH.
IF sy-subrc <> 0.
" if anything went wrong aborting the drap and drop operation:
CALL METHOD e_dragdropobj->abort.
ENDIF.
ENDMETHOD. " handle_alv_drop
* 单元格按钮点击事件
METHOD handle_button_click.
CLEAR gt_sflight.
READ TABLE gt_sflight INDEX es_row_no-row_id into gs_sflight.
IF SY-SUBRC EQ 0.
MESSAGE gs_sflight-carrid TYPE 'I'. " 弹窗显示信息
ENDIF.
ENDMETHOD. " handle_button_click
ENDCLASS. " LCL_event_receiver.
DATA: event_receiver type ref to lcl_event_receiver .
*& 查询数据,然后调用屏幕100.
START-OF-SELECTION.
SELECT * FROM SFLIGHT
INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT UP TO 90 ROWS.
* PERFORM SETTING_CELL. " 调用 设置单元格 子程序 "
* "信号灯"
* LOOP AT gt_sflight.
* IF gt_sflight-seatsocc <= 30.
* gt_sflight-light = '1'. " 1: 红灯
* ELSEIF gt_sflight-seatsocc <= 50.
* gt_sflight-light = '2'. "2: 黄灯
* ELSE.
* gt_sflight-light = '3'. ""3:绿灯
*
* ENDIF.
*
* "设置行颜色
* CASE gt_sflight-carrid.
* WHEN 'AA' . " 蓝色
* gt_sflight-linecolor = 'C100'.
* WHEN 'AZ'. " 黄色
* gt_sflight-linecolor = 'C300'.
* WHEN 'DL' . " 绿色
* gt_sflight-linecolor = 'C500'.
* ENDCASE. "设置行颜色
* MODIFY gt_sflight.
* ENDLOOP. " 信号灯
"*& 设置单元格属性
PERFORM SETTING_CELL.
CALL SCREEN 100.
gs_variant-report = sy-repid.
gs_variant-username = sy-uname.
*& 输出前事件包含文件
*& 创建 AVL控件
INCLUDE Z15_23_PBO.
* INCLUDE Z15_22_PBO.
*& 输入后 事件包含文件
*& PAI
INCLUDE Z15_23_PAI.
* INCLUDE Z15_22_PAI.
2、 包含子程序 PAI
*&---------------------------------------------------------------------*
*& 包含 Z15_23_PAI
*&---------------------------------------------------------------------*
*& PAI
MODULE user_command_0100 INPUT.
DATA: l_row type i,
l_value type c,
l_col type i,
ls_row type lvc_s_row,
ls_col type lvc_s_col,
ls_roid type lvc_s_roid.
DATA: ls_scroll type lvc_s_stbl.
ls_scroll-row = 'X'.
ls_scroll-col = 'X'.
*& 模式-> 选择:ABAP对象模式 ,(继续)-> 调用方法,
*& 在"实例"栏=G_GRID, 类/接口栏= CL_GUI_ALV_GRID,
*方法栏= get_current_cell
CALL METHOD G_GRID->GET_CURRENT_CELL
IMPORTING
E_ROW = l_row
E_VALUE = l_value
E_COL = l_col
ES_ROW_ID = ls_row
ES_COL_ID = ls_col
ES_ROW_NO = ls_roid.
*& 重新查询已经显示在ALV的输出表时使用的方法。
CALL METHOD G_GRID->REFRESH_TABLE_DISPLAY
EXPORTING
IS_STABLE = ls_scroll
I_SOFT_REFRESH = 'X'
* EXCEPTIONS
* FINISHED = 1
* others = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDMODULE. " user_command_0100.
2.1 包含子程序 PBO
*----------------------------------------------------------------------*
***INCLUDE Z15_23_PBO.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module INIT_CON OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE INIT_CON OUTPUT.
*& 1、创建容器对象
IF CON1_REF IS INITIAL. " 如果容器是空的,创建容器对象"
CREATE OBJECT CON1_REF
EXPORTING
CONTAINER_NAME = 'CON1'.
*& 2、创建 ALV GRID 控件 对象
CREATE OBJECT G_GRID
EXPORTING
I_PARENT = CON1_REF.
* EXCEPTIONS
* error_cnt1_create = 1
* error_cnt1_init = 2
* error_cnt1_link = 3
* error_dp_create = 4
* OTHERS = 5.
* if sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty number sy-msgno
* with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .
* endif.
ENDIF. " CON1_REF"
*& #REGION: 注册事件
CREATE OBJECT event_receiver.
* 注册事件Handler方法
SET HANDLER event_receiver->handle_double_click FOR g_grid .
*&
*& 注册刷新按钮事件 方法
SET HANDLER event_receiver->handle_toolbar FOR g_grid.
*& 注册工具栏刷新按钮的刷新事件 方法
SET HANDLER event_receiver->handle_command FOR g_grid.
*& 注册 拖放事件 方法
SET HANDLER event_receiver->handle_alv_drop for g_grid.
SET HANDLER event_receiver->handle_alv_drag for g_grid.
*& 单元格按钮
* CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_button_click FOR g_grid.
*& #ENDREGION: 注册事件
*& 模式-> 选择:ABAP对象模式 ,(继续)-> 调用方法, 在接口栏=G_GRID,
*& 类/接口栏= CL_GUI_ALV_GRID, 方法栏= SET_TABLE_FOR_FIRST_DISPLAY
*& 3、 ALV GRID显示数据方法
CALL METHOD g_grid->set_table_for_first_display
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
i_save = 'A'
is_variant = gs_variant
i_default = ' '
is_layout = gs_layout
it_toolbar_excluding = gt_toolbar
CHANGING
It_OUTTAB = GT_SFLIGHT[] " 若不带表头,则直接使用内表即可(即:GT_SFLGITH),
*& 定义内表时若带有表头,则调用ALV时需要传递表体。
it_fieldcatalog = gt_fieldcat " 字段目录
it_sort = gt_sort.
ENDMODULE. " INIT_CON OUTPUT
*CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
* EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
* I_SAVE =
* I_DEFAULT = 'X'
* IS_LAYOUT =
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
* CHANGING
* IT_OUTTAB =
* IT_FIELDCATALOG =
* IT_SORT =
* IT_FILTER =
* EXCEPTIONS
* INVALID_PARAMETER_COMBINATION = 1
* PROGRAM_ERROR = 2
* TOO_MANY_LINES = 3
* others = 4
* .
*IF SY-SUBRC <> 0.
** Implement suitable error handling here
*ENDIF.
效果图:

优质生活从拆开始
浙公网安备 33010602011771号