在 RPG ILE Free 中使用外部描述的数据结构
Using externally described data structures in RPG ILE Free
我在 RPG ILE Free 中使用外部描述的数据结构时遇到了很多问题。
最简单的问题似乎就是声明结构。
DCL-DS PALWGHT extname(SCN102DS);
PW DIM(20) OVERLAY(PALWGHT:1);
END-DS;
当我编译时,它说外部文件不存在...但它存在并且在我的库列表中。
A R PALWGHT
A P01WGHT 11S 3
A P02WGHT 11S 3
A P03WGHT 11S 3
A P04WGHT 11S 3
A P05WGHT 11S 3
A P06WGHT 11S 3
A P07WGHT 11S 3
A P08WGHT 11S 3
A P09WGHT 11S 3
A P10WGHT 11S 3
A P11WGHT 11S 3
A P12WGHT 11S 3
A P13WGHT 11S 3
A P14WGHT 11S 3
A P15WGHT 11S 3
A P16WGHT 11S 3
A P17WGHT 11S 3
A P18WGHT 11S 3
A P19WGHT 11S 3
A P20WGHT 11S 3
这在将其更改为自由格式之前有效.....
DPALWGHT E DS EXTNAME(SCN102DS)
DPW 11s 3 DIM(20) OVERLAY(PALWGHT:1)
我迷路了。这可能真的很愚蠢....
几个问题。首先,在 free-form 中 EXTNAME(filename)
中的文件名必须是 命名常量 或字符文字。这与可以是 文件名 或字符文字的固定形式变体不同。如果您阅读所有错误消息,您会收到 RNF0202 - THE PARAMETER FOR EXTNAME OR EXTFLD MUST BE A DEFINED NAMED CONSTANT OR LITERAL.
如果您使用文件名,则必须将其括在 free-form.
中的引号中
DCL-DS PALWGHT extname('SCN102DS');
PW
仍然未定义,因为它没有类型声明。并且,在free-form中,OVERLAY()
不能指向数据结构。相反,您使用 POS()
。所以整个事情应该看起来像:
DCL-DS PALWGHT extname('SCN102DS');
PW LIKE(P01WGHT) DIM(20) POS(1);
END-DS;
我在 RPG ILE Free 中使用外部描述的数据结构时遇到了很多问题。
最简单的问题似乎就是声明结构。
DCL-DS PALWGHT extname(SCN102DS);
PW DIM(20) OVERLAY(PALWGHT:1);
END-DS;
当我编译时,它说外部文件不存在...但它存在并且在我的库列表中。
A R PALWGHT
A P01WGHT 11S 3
A P02WGHT 11S 3
A P03WGHT 11S 3
A P04WGHT 11S 3
A P05WGHT 11S 3
A P06WGHT 11S 3
A P07WGHT 11S 3
A P08WGHT 11S 3
A P09WGHT 11S 3
A P10WGHT 11S 3
A P11WGHT 11S 3
A P12WGHT 11S 3
A P13WGHT 11S 3
A P14WGHT 11S 3
A P15WGHT 11S 3
A P16WGHT 11S 3
A P17WGHT 11S 3
A P18WGHT 11S 3
A P19WGHT 11S 3
A P20WGHT 11S 3
这在将其更改为自由格式之前有效.....
DPALWGHT E DS EXTNAME(SCN102DS)
DPW 11s 3 DIM(20) OVERLAY(PALWGHT:1)
我迷路了。这可能真的很愚蠢....
几个问题。首先,在 free-form 中 EXTNAME(filename)
中的文件名必须是 命名常量 或字符文字。这与可以是 文件名 或字符文字的固定形式变体不同。如果您阅读所有错误消息,您会收到 RNF0202 - THE PARAMETER FOR EXTNAME OR EXTFLD MUST BE A DEFINED NAMED CONSTANT OR LITERAL.
如果您使用文件名,则必须将其括在 free-form.
DCL-DS PALWGHT extname('SCN102DS');
PW
仍然未定义,因为它没有类型声明。并且,在free-form中,OVERLAY()
不能指向数据结构。相反,您使用 POS()
。所以整个事情应该看起来像:
DCL-DS PALWGHT extname('SCN102DS');
PW LIKE(P01WGHT) DIM(20) POS(1);
END-DS;