PS CJ20N 项目定义属性字段增强

一、CJ20N添加字段

68d0f8d9ab55be02ccd57704f287de7c.png

 二、用户出口CNEX0006

表增强

ffaba1bfd2f75c61f895f0812f49e6f0.png

CMOD分配CNEX0006

e12eac36115207ace23799d4fa7f6e86.png

出口EXIT_SAPLCJWB_002

找到全局文件ZXCN1TOP,引入PROJ,定义判断是否可编辑的变量G_DISPLAY

2570d1343fe70b1194d92512cabfcf61.png

实现包含文件ZXCNU11

数据展示到子屏幕

获取标准屏幕是否可编辑标识SAP_DISPLAY_ONLY

afde37777e65459f97c911755ca5bc2e.png

出口EXIT_SAPLCJWB_003

屏幕字段传入到数据表

 144f105107731374aaf7a711cbee2462.png

 编辑0600屏幕新增字段

29111e98815f281393c5a844a1fa9ddc.png

获取客户名称,当输入客户编号后,带出客户名称显示在后边的文本框中

4cf5f9c8f892302def2be67ab2a0cf5b.png

输入流

"-----------------------------------------@斌将军--------------------------------------------
MODULE get_kunnr_name INPUT.
  IF PROJ-KUNNR IS NOT INITIAL.
    SELECT SINGLE
      NAME1
    FROM KNA1
    INTO PROJ-NAME1
    WHERE KUNNR = PROJ-KUNNR.
  ENDIF.
ENDMODULE.
"-----------------------------------------@斌将军--------------------------------------------

输出流

"-----------------------------------------@斌将军--------------------------------------------
MODULE status_0600 OUTPUT.
LOOP AT SCREEN.
  IF G_DISPLAY = 'X'.
    SCREEN-INPUT = '0'.
    MODIFY SCREEN.
  ENDIF.
ENDLOOP.
ENDMODULE.
"-----------------------------------------@斌将军--------------------------------------------

激活以上全部文件即可

 三、校验必输项

虽然给客户编号设置了必输,但是只有进入所在的页签才能校验必输,如果创建后直接保存,必输不起作用,因此需要在保存的时候校验,客户编号是否为空

BADI:PROJECTDEF_UPDATE

SE19创建对应的增强,在AT_SAVE方法中,添加如下代码

"-----------------------------------------@斌将军--------------------------------------------  


METHOD if_ex_projectdef_update~at_save.
    IF im_projectdefinition-kunnr IS INITIAL.
      sy-msgid = 'ZNHPS100'.
      sy-msgno = '012'."客户编码必输
      RAISE error_with_message.
    ELSE.
      IF im_projectdefinition-vbukr IS NOT INITIAL.
        DATA:lv_kunnr TYPE kunnr.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            input  = im_projectdefinition-kunnr
          IMPORTING
            output = lv_kunnr.


        SELECT COUNT(*)
        FROM knb1
        WHERE kunnr = @lv_kunnr
          AND bukrs = @im_projectdefinition-vbukr.


        IF sy-subrc NE 0.
          sy-msgid = 'ZNHPS100'.
          sy-msgno = '013'."客户编码必输
          sy-msgv1 = im_projectdefinition-kunnr.
          sy-msgv2 = im_projectdefinition-vbukr.
          CLEAR:sy-msgv3,sy-msgv4.
          RAISE error_with_message.
        ENDIF.
      ENDIF.
    ENDIF.
  ENDMETHOD.
"-----------------------------------------@斌将军--------------------------------------------

这样,当报异常时,就可以将自定义的消息类和消息号,通过标准代码展示出来,解决了客户编号的必输校验问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值