《SAP Table设置带选择列.docx》由会员分享,可在线阅读,更多相关《SAP Table设置带选择列.docx(2页珍藏版)》请在三一办公上搜索。
1、SAP Table设置带选择列修改人:Bing 调用函数的ALV、面向对象的ALV设置带选择列 据网络原文修改 带选择列,是个什么概念,就是在ALV的表单主体前面多了一列可供选择的,具体就看下图: 这个就是对应的选择列,通过这个可以实现对ALV数据的选择,在调用函数的ALV和面向对象的ALV实现方法存在差异,下面讲两者的方法: 1)调用函数的ALV 通过 SLIS_LAYOUT_ALV-BOX_FIELDNAME的字段来设置,这个字段的值对应的是输出内表的一个字段名字,其实这种实现方法就跟平时我们增加一列复选择框用于选择的方法大致一样的,但是这种方法选择的方式比较快。 2)面向对象的ALV 通
2、过结构 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了,具体就看下面的例子了
3、: DATA : LT_ROW TYPE LVC_T_ROID, 内表 LS_ROW TYPE LVC_S_ROID. 工作区 CALL METHOD ALV_GRID1-GET_SELECTED_ROWS IMPORTING ET_ROW_NO = LT_ROW. LOOP AT LT_ROW INTO LS_ROW. READ TABLE T_OUTPUT INDEX LS_ROW-ROW_ID. IF SY-SUBRC EQ 0 . T_ARG-PASS = 0 . APPEND T_OUTPUT TO T_PRINT1. ENDIF. CLEAR T_OUTPUT. ENDLOOP. 获取TableControl选中的行 DATA: C_LINE TYPE I, 当前鼠标点击表控制的行数。 INDEX TYPE I. 对应的内表行ID。 GET CURSOR LINE C_LINE. 鼠标点击的行数。 *tab1对应的是表控件的名字,top_line字段对应的顶部显示的记录对应的内表中的行ID。 INDEX = TAB1-TOP_LINE + C_LINE - 1. READ TABLE T_OUTPUT INDEX INDEX. 根据内表的行ID读取内表。