对一个事务码进行改造,关于ALV 展示BOM数据的模仿标准CS12 开发的。
先看一下正常的ALV界面逻辑。根据查询的物料带出下级的物料,父级和组件物料都能继续带出物料。
现在增加一个需求,选择条件可以输入一个物料代码,不管父级或者组件匹配上了就要删除,包括父级和组件带出来的。
例如输入58C2313X2 第一个组件物料,那么父级出现了58C2313X2 就需要全部删掉,但是组件出现了很多个物料,这些物料又成为了父级物料带出了其他这些也需要删掉。
OK ,因为是之前的程序里面的取数逻辑猜测肯定是按BOM层级取得但是我并不熟悉,代码挺长的也不想去撸他的代码。
在最后输出ALV之前加代码。第一次用递归的算法总是会漏掉一些重复的物料,换了另一种思路,循环打标记。
判断一下父级和组件物料的那个有值,工作区打上X , 然后直接MODIFY 把父级物料匹配上的物料进行打标识X, 再对有标识的进行循环(虽然这样有点不好,在内表循环里面进行再循环删数据,但是不影响), 循环里面只对组件物料匹配上的打标识,这样来不管是父级还是组件都不会有漏网之鱼,因为要求就是输入的物料不管上下级带出来的全部给干掉。