我有一个显示文件,代码如下:
A DSPSIZ(24 80 *DS3)
A PRINT
A ERRSFL
A INDARA
...
A R DSPBTM
A CF05
A CF01
A CF07
A OVERLAY
...
A NEWFLD R B 12 12REFFLD(FLE/MYFIELD FIELDSFILE)
A 40 DSPATR(PR)
A EDTCDE(Z)
A 59 ERRMSG('New field and Original fiel-
A d must be different.' 59)
...
以及相关的RPG代码:
...
//If the old field and the new field are the same, error.
if oldfld = newfld;
*in59 = *on;
iter;
endif;
...
在调试时,我在exfmt之前验证了*in59是打开的。不过,当屏幕显示时,我什么也没得到。错误消息不会出现,字段不会突出显示,它的行为就像是一个没有错误的正常循环。
我在使用ERRMSGID时还有其他错误,这些确实有效。但是,我希望避免使用消息文件,因为它可能只使用一次。
我还没有找到任何有帮助的在线资源。一些教程似乎朝着正确的方向发展(比如本教程(,但仍然没有解决这个问题。
更改*IN59的状态后,需要对记录格式DSPBTM发出WRITE。