這個就是通過對應的選擇列,實現對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...