1、业务需求

针对用户使用销售订单时,判断是否有权限,没有权限时隐藏销售订单抬头和行项目的价格相关字段

2、增强实现

2.1、隐藏抬头和行项目价格

隐藏抬头和行项目表格中的净值和净价字段

在程序MV45AFZZ→USEREXIT_FIELD_MODIFICATION中写隐式增强

"--------------------@斌将军--------------------
FORM USEREXIT_FIELD_MODIFICATION. * CASE SCREEN-GROUP3.
* WHEN '900'.
* IF VBAK-VBTYP NE IF_SD_DOC_CATEGORY=>INQUIRY.
* SCREEN-ACTIVE = 0.
* ENDIF.
* ENDCASE. * CASE SCREEN-NAME.
* WHEN 'VBAK-VBELN'.
* SCREEN-ACTIVE = 0.
* ENDCASE. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1)
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZSD_VA01_PRICE. "active version IF sy-tcode = 'VA01' OR sy-tcode = 'VA02' OR sy-tcode = 'VA03' OR sy-tcode = 'VA05'. IF (
screen-name = 'VBAK-NETWR' OR "抬头 净值
screen-name = 'VBAK-WAERK' OR "抬头 货币
* screen-name = 'RV45A-KOEIN' OR "项目 货币
screen-name = 'VBAP-NETPR' OR "项目 净价
screen-name = 'VBAP-NETWR' "OR "项目 净值
* screen-name = 'VBAP-WAERK' OR "项目 SD 凭证货币
).
AUTHORITY-CHECK OBJECT 'ZCONDMANT'
ID 'ZCHECK' FIELD 'M'.
IF sy-subrc <> 0."没有权限
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDIF.
ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
ENDFORM.
"--------------------@斌将军--------------------

效果如下

2.2、隐藏条件页签价格

还需要隐藏抬头和行项目的条件页签中的价格数据

在程序LV69AF01→TCTRL_KONDITIONEN_INIT中写隐式增强。

此处的隐式增强必须写在FORM的末尾隐式增强点处,不能写在FORM开头的隐式增强点处。

因为抬头和行项目的条件页签都是调用了这段相同的代码,在第一次进入会对tctrl_konditionen进行重置,导致增强代码不起作用,所以要将增强代码写在FORM末尾

参考代码

"--------------------@斌将军--------------------
FORM tctrl_konditionen_init.
DATA: da_tfill LIKE sy-tabix. * Refresh table control if screen number has changed
STATICS: last_dynnr TYPE dynnr.
IF sy-dynnr NE last_dynnr AND gf_called_by_lord IS INITIAL.
last_dynnr = sy-dynnr.
REFRESH CONTROL 'tctrl_konditionen' FROM SCREEN sy-dynnr.
ENDIF. DESCRIBE TABLE xkomv LINES da_tfill. ...... """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1)
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZSD_VA01_ITEM_PRICE. "active version IF sy-tcode = 'VA01' OR sy-tcode = 'VA02' OR sy-tcode = 'VA03' OR sy-tcode = 'VA05'. AUTHORITY-CHECK OBJECT 'ZCONDMANT'
ID 'ZCHECK' FIELD 'M'.
IF sy-subrc <> 0."没有权限 "隐藏净值、税收字段
LOOP AT SCREEN.
IF screen-name = 'KOMP-NETWR' OR screen-name = 'KOMP-MWSBP'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
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.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
ENDFORM. "tctrl_konditionen_init
"--------------------@斌将军--------------------

效果如下

抬头条件页签

行项目条件页签

VA01/VA02/VA03/VA05 销售订单隐藏价格的更多相关文章

  1. 实践笔记-VA05 销售订单清单 增加字段

    现在都自开发很多报表 ,估计没有多少人 用  VA05 1.在结构 VBMTVZ 中增加需要的字段 2.表t180a 中  添加一条 “添加字段”的数据,如下: 3.取值 修改程序 INCLUDE V ...

  2. SAP SD VA01 销售订单中的自动价格更新

    场景 :当用户使用假定物料" A"创建销售订单时,确定了价格,但随后用户意识到需要更改物料,因此他们更改了订单中的物料. 现在,它显示价格已经重新确定,但是在项目条件页面中时,他们 ...

  3. VA01销售订单批导问题解决

    1业务场景 事务代码:VA01创建销售订单,VA02修改销售订单 可以通过BAPI_SALESORDER_CREATEFROMDAT2批量创建 可以通过BAPI_SALESORDER_CHANGE批量 ...

  4. C4C销售订单行项目价格维护方法

    需求很简单,能够创建销售订单,在行项目里添加产品,带出价格来,同时把总价显示在销售订单抬头区域. 如下图所示: 下面是具体配置. Business Configuration里,点击Sales Ord ...

  5. 【ABAP系列】SAP VA02修改销售订单的BAPI举例

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP VA02修改销售订单的B ...

  6. MV45AFZZ 销售订单的增强

    ***INCLUDE MV45AFZZ . *---------------------------------------------------------------------* * FORM ...

  7. [SAP ABAP开发技术总结]SD销售订单定价过程

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. SAP IDOC 通过采购订单输出消息生成销售订单

    题记: 在网络上看到一篇类似的公众号文章,叫<通过IDoc逐步指导PO&SO集成>,个人觉得整个配置过程中还是少了一些重点配置,也少了说明整个功能的核心逻辑,那么,趁着这个机会,就 ...

  9. [置顶]生鲜配送管理系统_升鲜宝V2.0 销售订单汇总_采购任务分配功能_操作说明

    做好生鲜供应链系统,要注意三个方面,1.分拣 2 采购  3 库存,市面上做的比较成熟的功能,还是分拣这一块(按客户分拣.按订单分拣.按商品分类分拣.按商品分拣.按线路分拣.客户自由组合分拣)[下篇文 ...

  10. 转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代

    转载]SAP囚徒 - 通过销售订单领用到成本中心,FI替代   原文地址:SAP囚徒 - 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同作者:SAP囚徒 物品领用通常是库存管理的范畴 ...

随机推荐

  1. 【使用git之旅】

    前言 在学习各种语言的时候我总喜欢把例子改成有自己想法并且有趣的程序, 但是时间一长,我发现在本地管理很麻烦,于是乎想到了github和gitee, 然后昨晚一时兴起,就开始了学习,开个博客记录一下我 ...

  2. AcWing 1022. 宠物小精灵之收服

    宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事. 一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵. 小智也想收服其中的一些小精灵. 然而,野生的小精灵并不那么容易被收服. ...

  3. 最全面的Mybatis面试八股文

    Mybatis是什么? MyBatis框架是一个开源的数据持久层框架. 它的内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询.存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设 ...

  4. JS基础语法(一)

    javascript简介 javascrpit是是一种轻量级的编程语言,常用于web前端开发.另外js还可以用来写node.js类型的服务和工具,在测试web项目的时候需要了解. 变量 js定义变量有 ...

  5. Electron-ChatGPT桌面端ChatGPT实例|electron25+vue3聊天AI模板EXE

    基于electron25+vite4+vue3仿制chatgpt客户端聊天模板ElectronChatGPT. electron-chatgpt 使用最新桌面端技术Electron25.x结合Vite ...

  6. 使用Python实现学生信息管理系统

    本文介绍了一个简单的学生信息管理系统,包括管理员登录.重置学生密码.添加.删除和修改学生信息.查询学生信息以及对学生成绩进行排序等功能.该系统使用Python编写,基于控制台交互 实现思路 该系统分为 ...

  7. 分享6个SQL小技巧

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明. 简介 经常有小哥发出疑问,SQL还能这么写?我经常笑着回应,SQL确实可以这么写.其实SQL学起来简单,用起来也 ...

  8. go使用 github.com/influxdata/influxdb/client/v2 写数据到 influxdb

    转载请注明出处: 接入示例 使用 github.com/influxdata/influxdb/client/v2 依赖包向 InfluxDB 写入数据的示例代码: package main impo ...

  9. 如何在.net6webapi中记录每次接口请求的日志

    为什么在软件设计中一定要有日志系统? 在软件设计中日志模块是必不可少的一部分,可以帮助开发人员更好的了解程序的运行情况,提高软件的可靠性,安全性和性能,日志通常能帮我们解决如下问题: 调试和故障排查: ...

  10. 【java-Err】 Generating equals/hashCode implementation but without a call to superclass,

    @EqualsAndHashCode  默认不继承父类 修复此问题的方法很简单:  1. 使用@Getter @Setter @ToString代替@Data并且自定义equals(Object ot ...