背景:報表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...