呼叫函式的ALV 物件導向的ALV設定帶選擇列

2021-09-24 17:09:13 字數 1310 閱讀 8888

這個就是通過對應的選擇列,實現對alv資料的選擇,在呼叫函式的alv和物件導向的alv

實現方法存在差異,下面講兩者的方法:

1)呼叫函式的alv。

通過 slis_layout_alv-box_fieldname的字段來設定,這個欄位的值對應的是輸出內錶的

乙個欄位名字(專門用於標記選擇哪些列,選中的為『x』),其實這種實現方法就跟平時我

們增加一列復選擇框用於選擇的方法大致一樣的,但是這種方法選擇的方式比較快。

2)物件導向的alv。

通過結構 lvc_s_layo-sel_mode的了段來設定,這個字段對應的值有以下5個:

1、sapce,等同於b,預設的設定。

2、a(行與列的選擇,無法選擇單元格)。

3、b(單選,不可以多選行,不可以多菜單元格)。

4、c(多選行、列,不可以多菜單元格)。

5、d(多選行、列,還可以多菜單元格)。

只有設定的值為『c』或者『d』帶選擇列才可以顯示出來,其它值一概不行。如果alv輸出

有列是可以編輯,則會覆蓋了 sel_mode的值,帶選擇列也會顯示出來的哦。

通過與1)種方法比較,很容易發現2)種方法沒有通過內錶的乙個欄位值來記錄哪些值沒選

中了,那我們如何知道哪些列被選中了呢?可以通過cl_gui_alv_grid-> get_selected_rows的

方法來獲取選中列對應的在輸出內錶中的行id了,具體就看下面的例子了:

data: lt_sel_rows type lvc_t_roid,

ls_sel_rows type lvc_s_roid.

data: ls_stbl type lvc_s_stbl."alv 控制:重新整理穩定性

clear:lt_sel_rows,ls_sel_rows.

data:lv_flag type char1.

clear:lv_flag.

g_ok_code = sy-ucomm.

call method g_grid_alv->get_selected_rows

importing

et_row_no = lt_sel_rows.

loop at lt_sel_rows into ls_sel_rows.

read table gt_item into gw_item index ls_sel_rows-row_id.

if gw_item-icon = 『@5b@』.

message 『審批狀態已經變更,無法再次審批』 type 『e』.

endif.

clear:ls_sel_rows.

endloop.

ALV呼叫的幾個函式

轉alv的呼叫主要由以下幾個標準函式實現,所有函式的輸入輸出引數必須大寫,否則系統會出現異常中止,相關函式如下 1 reuse alv fiendcatalog merge 根據內錶結構返回fieldcat欄位結構資訊,其常用輸入輸出引數如下 exporting項 1.i program name ...

c 物件導向 類的函式呼叫(一)

test1.h的標頭檔案 include using namespace std class test1 test1.cpp的內容 include test1.h int test1 sumfunc int x,int y 其他函式呼叫時 test1 a newtest1 cout a sumfun...

函式呼叫時的臨時物件 物件導向知識梳理

1.在原型上定義方法可以這樣定義 2.建立物件的安全模式 3.繼承的方式 1 類式繼承 缺點 一,由於子類通過其原型prototype對父類例項化,繼承了父類。所以說父類中的共有屬性如果是引用型別,就會在父類中被所有例項共用,更改屬性會直接影響到其他子類 二,子類實現的繼承是靠其原型prototyp...