最近接到一个需求,需要跟踪源码说明VA02销售订单条件价格更新按钮控制置灰的逻辑,即在什么条件下价格不能修改。
接到需求后,逻辑需要从后往前倒查。
1、首先找到控制按钮是否生效的控制代码,应该在子屏幕的PBO事件里。
截图一部分代码,当TRTYP_I 判断为A时 不可编辑,判断为V时可以编辑。
2、往前查找TRTYP_I 字段的赋值逻辑。
在函数:PRICING_SUBSCREEN_SET_DATA 中逻辑判断为TRTYP_I 赋值 初始值为V 当display_only为X时TRTYP_I赋值A
3、往前查找display_only字段的赋值逻辑。
根据变量值TKOMP-KAEND_TYP(条件类别不能被修改)是否等于*判断为display_only赋值
4、往前查找TKOMP-KAEND_TYP字段的赋值逻辑。
找到关键逻辑控制条件子屏幕是否可以编辑
这里两个系统的判断逻辑是一样的,差异在xvbapf-faklmeng数量字段值,为0时判断为条件可更改, 不为0判断为条件不可更改,这个字段应该是开具发票数量。
结论:销售订单已开票时订单条件价格不允许更改。