ERRMSG 不在 AS400 的 DSPF 中显示
ERRMSG does not display within DSPF for AS400
我有一个显示文件,代码如下:
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 时遇到其他错误,这些错误确实有效。但是,我想避免必须使用消息文件,因为这可能只会被使用一次。
我还没有找到任何有用的在线资源。有些教程似乎方向正确(例如this one),但仍然没有解决问题。
改变*IN59的状态后,需要向记录格式DSPBTM发出WRITE。
我有一个显示文件,代码如下:
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 时遇到其他错误,这些错误确实有效。但是,我想避免必须使用消息文件,因为这可能只会被使用一次。
我还没有找到任何有用的在线资源。有些教程似乎方向正确(例如this one),但仍然没有解决问题。
改变*IN59的状态后,需要向记录格式DSPBTM发出WRITE。