ABAP--如何限制REUSE_ALV_GRID_DISPLAY_LVC函数的某行某列的编辑(代码样例)

*&---------------------------------------------------------------------*
*& Report  ZDEMO_ALVGRID_EDIT                                          *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*& Example of a simple ALV Grid Report                                 *
*& ...................................                                 *
*&                                                                     *
*& The basic ALV grid, Enhanced to display specific fields as          *
*& editable depending on field value                                   *
*&---------------------------------------------------------------------*

REPORT  ZDEMO_ALVGRID_EDIT                 .

TABLES:     ekko.

TYPE-POOLS: slis.                                 "ALV Declarations
*Data Declaration
*----------------
TYPES: BEGIN OF t_ekko,
  ebeln TYPE ekpo-ebeln,
  ebelp TYPE ekpo-ebelp,
  statu TYPE ekpo-statu,
  aedat TYPE ekpo-aedat,
  matnr TYPE ekpo-matnr,
  menge TYPE ekpo-menge,
  meins TYPE ekpo-meins,
  netpr TYPE ekpo-netpr,
  peinh TYPE ekpo-peinh,
  field_style  TYPE lvc_t_styl, "FOR DISABLE
 END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
      wa_ekko TYPE t_ekko.

*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: it_fieldcat TYPE lvc_t_fcat,     "slis_t_fieldcat_alv

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用REUSE_ALV_GRID_DISPLAY_LVC函数的box_fname属性可以在ALV表格中创建选择框。如果您需要在用户勾选或取消勾选某一行时触发相应的事件,可以通过以下步骤实现: 1. 在LVC_S_FCAT结构体中,为选择框添加一个fieldname。您可以为该指定一个唯一的名称,例如'SELECTION'. 2. 在LVC_T_EVENT结构体中,为该选择添加一个事件处理程序。可以使用程序名和事件名称来指定事件处理程序。例如,您可以使用'ON_CLICK'事件来处理用户单击选择框中的某一行时触发的事件。 3. 在事件处理程序中,您可以使用参数P_EVENT来获取用户选择的行信息。这个参数是一个结构体类型的变量,包含了有关用户选择的行的信息。您可以使用其中的GRID_ROW和GRID_COLUMN属性来获取行和的索引。 下面是一个简单的示例,演示如何在REUSE_ALV_GRID_DISPLAY_LVC中处理选择框的单击事件: ``` DATA: lt_fieldcat TYPE lvc_t_fcat, lt_events TYPE lvc_t_event. * 添加选择框 lt_fieldcat-fieldname = 'SELECTION'. lt_fieldcat-seltext_m = 'Select'. APPEND lt_fieldcat TO lt_fieldcat. * 添加单击事件处理程序 CLEAR lt_events. lt_events-eventid = cl_gui_alv_grid=>mc_evt_click_cell. lt_events-form = 'ON_CLICK'. APPEND lt_events TO lt_events. * 显示ALV表格 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid it_fieldcat = lt_fieldcat it_events = lt_events i_save = 'A' TABLES t_outtab = lt_data. * 事件处理程序 FORM on_click USING p_event TYPE slvc_fullscreen_event. DATA: lv_row TYPE i. lv_row = p_event-grid_row. IF lv_row <> 0. IF lt_data[ lv_row ]-selection = abap_true. " 用户勾选了该行 ELSE. " 用户取消勾选了该行 ENDIF. ENDIF. ENDFORM. ``` 希望这个示例能够帮助您处理REUSE_ALV_GRID_DISPLAY_LVC函数的选择框事件。如果您有其他问题或疑问,请随时提出。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值