ALV 选中多选说明 (REUSE_ALV_GRID_DISPLAY 二)

ALV控件需要出现最左边的选中列,并且多选了行后,在GT_ALV中可以有标记。

1、选中ALV:

 2、在GT_ALV中有一个字段,鼠标点选后,选中的行内表中会打上X。

 3、ABAP代码如下:

*---------------------------------------------------------------------
*      Form  SHOW_DATA
*---------------------------------------------------------------------

FORM FRM_SHOW_DATA .

  DATA: WS_FIELDCAT        TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
        WS_FIELDGROUPS_TAB TYPE SLIS_T_SP_GROUP_ALV,
        WS_LAYOUT          TYPE SLIS_LAYOUT_ALV,
        WS_SORTFIELDS_TAB  TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
        WS_EVENTS          TYPE SLIS_T_EVENT.
  DATA: NN TYPE I VALUE 0.
  DATA: TITLE TYPE LVC_TITLE.
  DATA: COLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
*
  DEFINE HOUT.
    NN = NN + 1.
    WS_FIELDCAT-COL_POS       =  NN.
    WS_FIELDCAT-TABNAME       = 'GT_ALV'.
    WS_FIELDCAT-KEY           = &1.
    WS_FIELDCAT-FIELDNAME     = &2.
    WS_FIELDCAT-SELTEXT_M     = &3.
    WS_FIELDCAT-CFIELDNAME    = &4.
    WS_FIELDCAT-DATATYPE      = &5.
    WS_FIELDCAT-REF_TABNAME   = &6.
    WS_FIELDCAT-REF_FIELDNAME = &7.
    WS_FIELDCAT-DO_SUM        = &8.
    WS_FIELDCAT-HOTSPOT       = &9.
    APPEND WS_FIELDCAT.
    CLEAR WS_FIELDCAT.
  END-OF-DEFINITION.

  HOUT:

'' 'ordid' '订单ID' '' '' '' '' '' '',
'' 'ZTP' '点位' '' '' '' '' '' '',
'' 'ordno' '订单号' '' '' '' '' '' '',
'' 'werks' '工厂' '' '' '' '' '' '',
'' 'matnr' '物料' '' '' '' '' '' '',
'' 'status' '状态' '' '' '' '' '' '',
'' 'message' '消息' '' '' '' '' '' ''.

  WS_LAYOUT-BOX_FIELDNAME     = 'SELXXX'.
  WS_LAYOUT-ZEBRA             = 'X'.
  WS_LAYOUT-GET_SELINFOS      = 'X'.
  WS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
  WS_LAYOUT-DETAIL_POPUP      = 'X'.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-REPID
      I_CALLBACK_PF_STATUS_SET = 'ALV_STATUS_SET'
      I_CALLBACK_USER_COMMAND  = 'ALV_USER_COMMAND'
      IS_LAYOUT                = WS_LAYOUT
      IT_FIELDCAT              = WS_FIELDCAT[]
      IT_SPECIAL_GROUPS        = WS_FIELDGROUPS_TAB[]
      IT_SORT                  = WS_SORTFIELDS_TAB[]
      IT_EVENTS                = WS_EVENTS[]
      I_GRID_TITLE             = TITLE
      I_DEFAULT                = 'X'
      I_SAVE                   = 'A'
    TABLES
      T_OUTTAB                 = GT_ALV[]
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS                   = 2.

ENDFORM.                    " OUTPUT_DATA



FORM ALV_STATUS_SET USING PT_EXTAB TYPE SLIS_T_EXTAB.
    CLEAR: PT_EXTAB[].
    SET PF-STATUS '100'.
  ENDFORM.




FORM ALV_USER_COMMAND USING P_UCOMM LIKE SY-UCOMM P_SELFIELD TYPE SLIS_SELFIELD.  "P_SELFIELD 用户鼠标选择的一个字段


  CASE P_UCOMM.
    WHEN '&GO'.

*       LOOP AT gt_alv ASSIGNING <f_alv>.
*        IF <f_alv>-status NE 'E'.
*          PERFORM frm_point_pass CHANGING <f_alv>.
*        ENDIF.
*        UPDATE ztpd0008 SET execute_status = <f_alv>-status
*                            execute_msg = <f_alv>-message
*           WHERE ordno = <f_alv>-ordno AND ztp = <f_alv>-ztp.
*       ENDLOOP.

    WHEN 'B2'.

  ENDCASE.
ENDFORM.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘欣的博客

你将成为第一个打赏博主的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值