表维护视图DEMO(4):单元格级别编辑_SAP刘梦_新浪博客

这个其实属于table control 技术的范畴。

比如根据table control 内容的某列的值,来判断该行某列是否可编辑等等。

在表维护视图的时候也会用到。


还是以之前的视图为例。


表维护视图DEMO(4):单元格级别编辑
显示数据
表维护视图DEMO(4):单元格级别编辑

做过简单的demo,没有实际业务意义。


当物料 = 60008030 的时候,日期字段可编辑。


首先步骤:

根据view 找到对应的表维护 的screen,也就是对应的table control。

表维护视图DEMO(4):单元格级别编辑
在loop里面,这个位置添加一个module。
表维护视图DEMO(4):单元格级别编辑

添加如下代码

*&---------------------------------------------------------------------*
*&      Module  MDL_CONTRL_INPUT  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE MDL_CONTRL_INPUT OUTPUT.

  DATA:LV_MATRN TYPE MATNR.
  LV_MATRN =  ZLM_V_002-MATNR .

  SHIFT LV_MATRN LEFT DELETING LEADING '0'.

  IF LV_MATRN  = '60008030'.

    LOOP AT SCREEN.
      IF SCREEN-NAME = 'ZLM_V_002-DATUM'.
        SCREEN-INPUT = 1.   "可输入状态
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.

  ENDIF.
ENDMODULE. 

执行效果:

表维护视图DEMO(4):单元格级别编辑

但是,到这里还没有结束,你如果编辑这个字段,然后点保存,发现修改的不起作用。

所以如果想保存编辑字段的值。还需要做下面的处理。

针对这个字段加一个on request module。

表维护视图DEMO(4):单元格级别编辑

(因为是使用的之前的视图,把之前的自动日期赋值给注释掉)


代码:

表维护视图DEMO(4):单元格级别编辑

*----------------------------------------------------------------------*
MODULE MDL_CHANGE_DATE INPUT.

  FIELD-SYMBOLS  TYPE ANY.
  FIELD-SYMBOLS  TYPE ANY.
  FIELD-SYMBOLS  TYPE ANY.

  LOOP AT EXTRACT ASSIGNING .

    "按物料做主键(表维护程序前台工厂必输)
    ASSIGN COMPONENT 'MATNR' OF STRUCTURE  TO .
    CHECK  = ZLM_V_002-MATNR.

    ASSIGN COMPONENT 'DATUM' OF STRUCTURE  TO .
    IF SY-SUBRC = 0.
       = ZLM_V_002-DATUM.
    ENDIF.

  ENDLOOP.


ENDMODULE. 


修改日期,回车或者点保存即可。

表维护视图DEMO(4):单元格级别编辑

表维护视图DEMO(4):单元格级别编辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值