图1
图2
如上,图2是图1过滤后的显示,需要把图2的数据进行处理时,可以使用CL_GUI_ALV_GRID -->>GET_FILTERED_ENTRIES
是通过 过滤掉的内表数据行号来筛选。
DATA: lo_grid TYPE REF TO cl_gui_alv_grid,
filt_table TYPE lvc_t_fidx,
l_filt_table TYPE int4.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lo_grid.
CALL METHOD lo_grid->get_filtered_entries
IMPORTING
et_filtered_entries = filt_table. "被过滤的内表数据行
CASE r_ucomm.
WHEN 'SEND'.
LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_1>).
"看该行是否在被过滤的内表行中
READ TABLE filt_table INTO l_filt_table WITH KEY table_line = sy-tabix.
"不在的话则是符合筛选条件的数据
IF sy-subrc <> 0.
gs_dep_alv-objid = <fs_1>-objid.
gs_dep_alv-pernr = <fs_1>-pernr.
APPEND gs_dep_alv TO gt_send.
CLEAR gs_dep_alv.
ENDIF.
ENDLOOP.
ENDCASE.