此博客为原创博客,都是个人工作经历所得,转载请注明出处

VA01隐藏销售订单价格增强

在废料销售中,采购根据客户废料报价进行废料核价;现采购建废料合同,仓库人员参照合同创建销售订单,仓库对废料价格不具有知情权限,只填销售订单相应的物料和数量,需要对销售订单行项目的金额和净价做隐藏,对相关仓库人员做权限管控。

 

要实现1,隐藏行项目金额,净价,净值字段   

 

 使用隐式增强实现:
增强点1. MV45AFZZ  FORM USEREXIT_FIELD_MODIFICATION.

 

 

 

 

**-->START ADD ON 20210528 15:17:00 BY SAPWB0011 FOR 蓝思精密_泰州  REQ BY 龙姝婷
**泰州参考合同创建销售订单,不让用户看价格
**检查权限对象 ZSD_MONEY ,没有权限不显示价格
*通过销售组织确定维护范围,销售组织指定为P100;销售订单类型为废料销售订单:ZOR7
*以下为销售订单中体现的金额和净价

*BREAK SAPWB0011.
  IF uv_vkorg = 'P100'.
    IF sy-tcode = 'VA01' OR sy-tcode = 'VA02' OR sy-tcode = 'VA03' AND uv_auart = 'ZOR7'.

      AUTHORITY-CHECK OBJECT 'ZSD_MONEY'
       ID 'VKORG' FIELD uv_vkorg
       ID 'AUART' FIELD uv_auart
       ID 'ACTVT' FIELD '03'.
      IF sy-subrc <> 0.
*       Implement a suitable exception handling here
      ENDIF.

*   Implement a suitable exception handling here
      IF (
         screen-name = 'VBAK-NETWR' OR  "抬头 净值
         screen-name = 'VBAK-WAERK' OR
         screen-name = 'VBAP-NETWR' OR  "项目 - 净值
         screen-name = 'RV45A-KOEIN' OR
         screen-name = 'VBAP-NETPR' OR  "项目 - 净价
         screen-name = 'VBAP-NETWR' OR
         screen-name = 'VBAP-WAERK' OR

           screen-name = 'KOMV-KWERT' OR
           screen-name = 'KOMV-KBETR' OR"项目 - 金额
           screen-name = 'KOMV-KWERT_K' OR
           screen-name = 'KOMV-KAWRT' OR
           screen-name = 'KOMP-NETWR' OR
           screen-name = 'KOMP-MWSBP' OR
           screen-name = 'KOMP-WAERK'
           ).
        screen-active = 0.
      ENDIF.
      MODIFY SCREEN.
    ENDIF.
  ENDIF.
**检查权限对象 ZSD_MONEY ,没有权限不显示价格
**-->E N D ADD ON 20210528 15:17:00 BY SAPWB0011 FOR 蓝思精密_泰州  REQ BY 龙姝婷

 

2,行项目条件里的价格, 需要把 条件里的金额,定价值隐藏

 

 

 

 

 在包含文件LF69AF01 里做增强

 

 

ENHANCEMENT 1  ZEN_SD_VA01_MONEY.    "active version
**检查权限对象 ZSD_MONEY ,没有权限不显示价格
*通过销售组织确定维护范围,销售组织指定为P100;销售订单类型为废料销售订单:ZOR7
*以下为销售订单中体现的金额和净价

*BREAK SAPWB0011.
IF komk-vkorg = 'P100' and komk-auart = 'ZOR7' AND ( SY-TCODE = 'VA01' OR SY-TCODE = 'VA02' OR SY-TCODE = 'VA03' ).
   AUTHORITY-CHECK OBJECT 'ZSD_MONEY'
    ID 'VKORG' FIELD komk-vkorg
    ID 'AUART' FIELD komk-auart
    ID 'ACTVT' FIELD '03'.
   IF SY-SUBRc NE 0.
   ENDIF.
      LOOP AT SCREEN.
        CASE SCREEN-NAME.
          WHEN 'KOMV-KWERT'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMV-KBETR'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMV-KWERT_K'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMV-KAWRT'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMP-NETWR'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMP-MWSBP'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMK-WAERK'.
            SCREEN-ACTIVE = 0.
          WHEN OTHERS.
        ENDCASE.
        MODIFY SCREEN.
      ENDLOOP.

      loop at tctrl_konditionen-cols into data(lv_acol).
        if lv_acol-screen-name eq 'KOMV-KBETR' OR LV_ACOL-SCREEN-NAME EQ 'KOMV-KWERT'.
          lv_acol-INVISIBLE = 1.
          MODIFY TCTRL_KONDITIONEN-COLS FROM LV_ACOL INDEX SY-TABIX.
        ENDIF.
      ENDLOOP.
*   ENDIF.

 ENDIF.

ENDENHANCEMENT.

 

 

ENHANCEMENT 1  ZEN_SD_VA01_MONEY.    "active version
**检查权限对象 ZSD_MONEY ,没有权限不显示价格
*通过销售组织确定维护范围,销售组织指定为P100;销售订单类型为废料销售订单:ZOR7
*以下为销售订单中体现的金额和净价

*BREAK SAPWB0011.
IF komk-vkorg = 'P100' and komk-auart = 'ZOR7' AND ( SY-TCODE = 'VA01' OR SY-TCODE = 'VA02' OR SY-TCODE = 'VA03' ).
   AUTHORITY-CHECK OBJECT 'ZSD_MONEY'
    ID 'VKORG' FIELD komk-vkorg
    ID 'AUART' FIELD komk-auart
    ID 'ACTVT' FIELD '03'.
   IF SY-SUBRc NE 0.
   ENDIF.
      LOOP AT SCREEN.
        CASE SCREEN-NAME.
          WHEN 'KOMV-KWERT'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMV-KBETR'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMV-KWERT_K'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMV-KAWRT'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMP-NETWR'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMP-MWSBP'.
            SCREEN-ACTIVE = 0.
          WHEN 'KOMK-WAERK'.
            SCREEN-ACTIVE = 0.
          WHEN OTHERS.
        ENDCASE.
        MODIFY SCREEN.
      ENDLOOP.

      loop at tctrl_konditionen-cols into data(lv_acol).
        if lv_acol-screen-name eq 'KOMV-KBETR' OR LV_ACOL-SCREEN-NAME EQ 'KOMV-KWERT'.
          lv_acol-INVISIBLE = 1.
          MODIFY TCTRL_KONDITIONEN-COLS FROM LV_ACOL INDEX SY-TABIX.
        ENDIF.
      ENDLOOP.
*   ENDIF.

 ENDIF.

ENDENHANCEMENT.

 

 

posted @ 2021-05-31 07:52  Rainystuday  阅读(524)  评论(0)    收藏  举报