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。