vl01/vl02/vl03 交货单屏幕增强

步骤

1、在相应的表里加附加字段(抬头数据 likp,  行项目数据lips)

2、编写程序 或者 函数组,创建屏幕,画出屏幕布局

3、交货单抬头屏幕增强BADI:LE_SHP_TAB_CUST_HEAD .

    交货单行项目屏幕增强BADI:LE_SHP_TAB_CUST_ITEM


1、在相应的表里加附加字段(抬头数据 likp,  行项目数据lips)

  a、抬头数据 

 b、行项目数据

 

 

2、编写程序 或者 函数组,创建屏幕,画出屏幕布局

 我在这里是建了一个程序,函数组也一样的,

  a、建立程序,建立屏幕9001,安排好样式

   

屏幕9001 

 屏幕的逻辑流

 "获取表里数据,或者填的数据  lv_trtyp 这个字段是判断当前状态是不是为编辑,比如事务码为vl03,但是我们点编辑,这个时候单纯的判断事务码就不能实现显示和修改

  

在显示之前 通过   GET PARAMETER ID 'ZSHDD' FIELD likp-zshdd.  的方法获取对应的值

MODULE status_9001 OUTPUT.
  "修改显示标识 A 显示,V 修改
  "DATA lv_trtyp TYPE trtyp.

* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
  GET PARAMETER ID 'ZSHDD' FIELD likp-zshdd.
  GET PARAMETER ID 'ZSHRY' FIELD likp-zshry.
  GET PARAMETER ID 'ZLXDH' FIELD likp-zlxdh.
  GET PARAMETER ID 'ZWLFS' FIELD likp-zwlfs.
  GET PARAMETER ID 'ZDZ'   FIELD likp-zdz.
  GET PARAMETER ID 'ZMBLNR' FIELD likp-zmblnr.
  GET PARAMETER ID 'MJA'   FIELD likp-zmjahr.
  GET PARAMETER ID 'ZDFKH' FIELD likp-zdfkh.
  GET PARAMETER ID 'ZDFMC' FIELD likp-zdfmc.
  GET PARAMETER ID 'ZVBELN' FIELD likp-zvbeln.
  GET PARAMETER ID 'ZVBELN_J' FIELD likp-zvbeln_j.
  GET PARAMETER ID 'ZVBELN_W' FIELD likp-zvbeln_w.
  GET PARAMETER ID 'ZTYP'  FIELD DATA(lv_trtyp).
  GET PARAMETER ID 'LFART'  FIELD DATA(lv_lfart).

  IF sy-tcode = 'VL03N'.
    LOOP AT SCREEN.
      IF   screen-name = 'LIKP-ZSHDD'  OR screen-name = 'LIKP-ZSHRY'
        OR screen-name = 'LIKP-ZLXDH'
        OR screen-name = 'LIKP-ZWLFS'  OR screen-name = 'LIKP-ZDZ'
        OR screen-name = 'LIKP-ZMBLNR' OR screen-name = 'LIKP-ZMJAHR'
        OR screen-name = 'LIKP-ZDFKH'  OR screen-name = 'LIKP-ZDATE'
        OR screen-name = 'LIKP-ZDFMC' OR screen-name = 'LIKP-ZVBELN' OR screen-name = 'LIKP-ZVBELN_J' OR screen-name = 'LIKP-ZVBELN_W'.
        screen-input = 0.
        MODIFY SCREEN.
      ENDIF.
    ENDLOOP.
  ENDIF.

  LOOP AT SCREEN.
    IF screen-name = 'LIKP-ZSHDD'  OR screen-name = 'LIKP-ZSHRY'
    OR screen-name = 'LIKP-ZLXDH'  OR screen-name = 'LIKP-ZDATE'
    OR screen-name = 'LIKP-ZWLFS'  OR screen-name = 'LIKP-ZDZ'
    OR screen-name = 'LIKP-ZMBLNR' OR screen-name = 'LIKP-ZMJAHR'
    OR screen-name = 'LIKP-ZDFKH'  OR screen-name = 'LIKP-ZDFMC' OR screen-name = 'LIKP-ZVBELN' OR screen-name = 'LIKP-ZVBELN_J' OR screen-name = 'LIKP-ZVBELN_W'.
      IF lv_trtyp = 'A'.
        screen-input = 0.
      ELSEIF lv_trtyp = 'V'.
        screen-input = 1.
      ENDIF.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

  IF sy-tcode = 'VL01N'.
    IF likp-zshdd IS INITIAL.
      SELECT SINGLE
        zshdd
        zshry
        zlxdh
        zwlfs
        zdz
        INTO (likp-zshdd,likp-zshry,likp-zlxdh,likp-zwlfs,likp-zdz)
        FROM vbak
        WHERE vbeln = lv50c-vbeln.
    ENDIF.
    IF likp-zdfkh IS INITIAL AND lv_lfart = 'ZLF'.
      SELECT SINGLE
        zdfkh
        zdfmc
        FROM vbak
        INTO (likp-zdfkh,likp-zdfmc)
        WHERE vbeln = lv50c-vbeln.
    ENDIF.
  ENDIF.
ENDMODULE.

修改或者按钮以后把值写回去

 

MODULE user_command_9001 INPUT.

  SET PARAMETER ID 'ZSHDD' FIELD likp-zshdd.
  SET PARAMETER ID 'ZSHRY' FIELD likp-zshry.
  SET PARAMETER ID 'ZLXDH' FIELD likp-zlxdh.
  SET PARAMETER ID 'ZWLFS' FIELD likp-zwlfs.
  SET PARAMETER ID 'ZDZ' FIELD likp-zdz.
  SET PARAMETER ID 'ZMBLNR' FIELD likp-zmblnr.
  SET PARAMETER ID 'MJA' FIELD likp-zmjahr.
  SET PARAMETER ID 'ZDFKH' FIELD likp-zdfkh.
  SET PARAMETER ID 'ZDFMC' FIELD likp-zdfmc.
  SET PARAMETER ID 'ZVBELN' FIELD likp-zvbeln.
  SET PARAMETER ID 'ZVBELN_J' FIELD likp-zvbeln_j.
  SET PARAMETER ID 'ZVBELN_W' FIELD likp-zvbeln_w.
  "  SET PARAMETER ID 'ZDTE' FIELD likp-zdate.
ENDMODULE.

3、交货单抬头屏幕增强BADI:LE_SHP_TAB_CUST_HEAD

  通过方法跟标准程序关联,回写和读取增强数据

se18 BADI 创建实施 

也可以自己建个方法:

 

分别在方法里添加代码

 

 

head 和 item 做法相似。可以参考

 最后显示:

抬头数据

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值