我一直在阅读LIKEDS,TEMPLATE和BASED,试图确定是否有一种方法来创建具有继承的数据结构模板(原型).我有: D costs DS QUALIFIED TEMPLATED material 6 0D cutting 6 0D ...etc...D boxCosts DS LIKEDS(costs)D folding
D costs DS QUALIFIED TEMPLATE D material 6 0 D cutting 6 0 D ...etc... D boxCosts DS LIKEDS(costs) D folding 6 0 D ...etc... D posterCosts DS LIKEDS(costs) D laminating 6 0 D ...etc...
我希望boxCosts看起来像:
boxCosts: material cutting folding etc. (no laminating, this isn't a poster)
有没有办法实现这种类型的数据结构模板?我知道我能做到:
D boxCosts DS D common LIKEDS(costs) D folding 6 0 D ...etc...
但是当我想要一个扁平结构时,这会创建一个层次结构
我也许可以用一本字帖来做这件事,但我不知道在我自己的文件中只提供我想要的数据结构部分的副本是否会更糟,或者为整个应用程序提供可能复杂的条件副本复制这些信息的区域很小……?模板非常接近我想要的东西我怀疑我必须丢失一些东西.
如果您想知道,我尝试创建一个像我所示的继承数据结构得到的编译错误是RNF3703:子组或参数定义未在组中指定.在LIKEDS关键字下面的第一个D规格上.
谢谢阅读.
RPG数据结构是存储器映射.它们定义了一种在内存中以特定方式对变量进行分组和重叠的方法.这就是为什么如果LIKEDS()得到层次结构 – 编译器正在将层次结构从模板复制到目标.至少有一种方法可以压扁结构:
d costs ds template d t_material 6s 0 d t_cutting 6s 0 d box e ds extname(boxcosts) prefix(t_) template d boxCosts ds qualified d material like(t_material) d cutting like(t_cutting) d folding like(t_folding) boxCosts.cutting = 1; boxCosts.folding = 2;
第一个结构在程序中定义;第二个是基于文件.我这样做只是为了显示定义子字段的两种不同方式.