ABAP ALV编辑后触发事件

这篇文章展示了如何在SAPABAP中处理ALV(ListViewer)表格的事件。通过在`it_events`参数中指定事件,或者注册ALV对象来实现事件监听。代码示例中详细说明了如何设置字段属性,并在`DATA_CHANGED`事件触发时调用自定义的`FRM_DATA_CHANGED`函数来处理数据变化。

实现的方式有两种,
1.FUNCTION ALV在it_events的参数中,写入对应的事件
2.OO ALV和FUNCTION ALV都可以,注册当前ALV的事件,对应的事件需要创建对象去实现。

下面代码中,实现的是第一种,在it_events中写入事件

FORM frm_fieldcat.
  DEFINE fcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-fieldname = &1.  "字段的名字(内表中定义的字段名)
    ls_fieldcat-scrtext_l = &2.  "字段的文本描述,输出时候显示。长描述
    ls_fieldcat-edit      = &3.  "当前列可编辑
    ls_fieldcat-drdn_hndl = &4.

    IF &1 = 'BL_DATUM' OR &1 = 'FKRQ1' OR &1 = 'FKRQ2'.
*      ls_fieldcat-HOTSPOT = 'X'.
      ls_fieldcat-ref_field = 'ERDAT'.
      ls_fieldcat-ref_table = 'VBAK'.
    ENDIF.
    IF &1 = 'BZ'.
      ls_fieldcat-dd_outlen = 50.
    ENDIF.

    APPEND ls_fieldcat TO lt_fieldcat.
  END-OF-DEFINITION.

  fcat:
  'WADAT_IST' '出货日期' '' '',
  'HTEXT' '合同号' '' '',  "取自交货单抬头文本
  'KUNNR' '客户编码' '' '',
  'NAME1' '客户名称' '' '',
  'VKORG' '销售组织' '' '',
  'L_VBELN' '磅码单号' '' '',
  'CHJE' '出货金额' '' '',
  'NTGEW' '净重量' '' '',
  'BL_DATUM' '开票/BL日期' 'X' '',
  'KPJE' '开票金额' 'X' '',
  'WAERS' '币种' '' '',
  'BL_NUM' '发票号/BL号' 'X' '',
  'ZTERM' '付款条件' '' '',
  'VTEXT' '付款条件描述' '' '',
  'FKTJLB' '付款条件类别' 'X' '1',
  'ZTAG1' '账期' '' '',
  'DQRQ' '到期日期' '' '',
  'FKRQ1' '付款日期1' 'X' '',
  'FKJE1' '付款金额1' 'X' '',
  'FKRQ2' '付款日期2' 'X' '',
  'FKJE2' '付款金额2' 'X' '',
  'YUE' '余额' '' '',
  'SX' '手续费' 'X' '',
  'QK' '欠款' 'X' '',
  'S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值