ERRMSG未在AS400的DSPF中显示

问题描述

我有一个显示文件,其代码如下:

     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;
...

在调试时,我在打开* in59之前验证了这一点。但是,当显示屏幕时,我什么也没得到。错误消息不会出现,该字段也不会突出显示,它的行为就像是正常循环,没有错误

使用ERRMsgiD时,我还有其他错误,这些错误确实起作用。但是,我希望避免使用消息文件,因为这可能只会使用一次。

我还没有找到任何有用的在线资源。一些教程似乎朝着正确的方向发展(例如this one),但仍未解决问题。

解决方法

更改* IN59的状态后,您需要对记录格式DSPBTM发出WRITE。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...