SAP ABAP 獲取ALV顯示後過濾的資料

2021-10-09 17:28:14 字數 1295 閱讀 4213

背景:報表alv顯示資料後,需要將過濾後的資料推送到另乙個系統。

實現:通過類cl_gui_alv_grid的方法get_filtered_entries獲取被過濾掉的內錶資料行號,篩選後的alv內錶資料=內錶資料-被過濾掉的內錶資料。

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."被過濾的內錶資料行

l_ucomm = r_ucomm.

case l_ucomm.

when '&send'."推送至其他系統

loop at it_out.

read table filt_table into l_filt_table

with key table_line = sy-tabix.「看該行是否在被過濾的內錶行中

if sy-subrc <> 0.

ls_send-ebeln = it_out-ebeln.

ls_send-ekorg = it_out-ekorg.

ls_send-matnr = it_out-matnr.

ls_send-txz01 = it_out-txz01.

ls_send-belnr = it_out-belnr.

clear ls_send.

endif.

endloop.

call function 'z_fi_send' "推送至其他系統

importing

es_return = ls_return

tables

it_send = lt_send.

message ls_return-message type ls_return-type.

when others.

endcase.

簡單的ALV顯示例子

廢話不多說,直接上傻瓜 歸根結底,就是要將顯示的字段一行一行的放入fieldcat的表裡。定義alv資料變數 data it fieldcat type slis t fieldcat alv,wa fieldcat type slis fieldcat alv,wa layout type sli...

ALV編輯後自動優化列寬

ooalv的優化列寬是在layout裡邊控制的,實現在首次進入的時候優化列寬,需要設定gs layout cwidth opt x 不知道是我設定有問題還是咋回事,結果並不理想,商品編碼沒有全部展示出來。在 輸入之後自動優化列寬 需要一段 因為我這裡需要輸入編碼帶出描述,我就把這段 放在了 chan...

ALV 表頭 ,分區域 分別對其 顯示

如下圖所示,需要在alv表頭實現下列樣式 所以,在alv function 中設定 i callback html top of page html top of page call function reuse alv grid display exporting i callback progr...