需求:在计划独立需求界面新增一列自定义字段
效果如下:
MD63:显示:(注:客户字段在显示界面不可以编辑)
MD61:创建/MD62:修改(注:创建和修改的时候客户字段可编辑)
MD61创建界面:
MD62修改界面:
增强表结构:
代码实现:
程序:SAPLM60E
屏幕:0202
设置布局,添加一列客户
添加增强字段的校验逻辑
FIELD PBPT-ZKUNNR MODULE CHECK_ZKUNNR ON REQUEST..
对增强字段进行校验处理
*----------------------------------------------------------------------*
***INCLUDE LM60EI01.
*----------------------------------------------------------------------*
*{ INSERT S4DK900144 1
*&---------------------------------------------------------------------*
*& Module CHECK_ZKUNNR INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE check_zkunnr INPUT.
DATA: ls_kna1 TYPE kna1,
lt_pbim TYPE TABLE OF pbim,
ls_pbim TYPE pbim.
CLEAR: ls_kna1,
lt_pbim,
ls_pbim.
"检查客户是否存在
SELECT SINGLE * INTO ls_kna1
FROM kna1
WHERE kunnr = pbpt-zkunnr.
IF ls_kna1 IS INITIAL.
MESSAGE '客户不存在,请检查。' TYPE 'E'.
ELSE. "检查客户是否打上冻结标识
IF ls_kna1-aufsd IS NOT INITIAL.
MESSAGE '客户被打上冻结标识,请检查。' TYPE 'E'.
ENDIF.
ENDIF.
* 检查物料+工厂+版本条件下,客户不能重复
SELECT * INTO TABLE lt_pbim
FROM pbim
WHERE matnr = pbpt-matnr
AND werks = pbpt-werks
AND versb = pbpt-versb
AND vervs = 'X'.
IF sy-subrc = 0.
READ TABLE lt_pbim INTO ls_pbim WITH KEY zkunnr = pbpt-zkunnr.
IF sy-subrc = 0.
MESSAGE '客户重复,请检查。' TYPE 'E'.
ENDIF.
ENDIF.
ENDMODULE.
*} INSERT
增强的信息更新到以下表PBIM中:
到此,所有的都完成了