ERRMSG does not display within DSPF for AS400

850 Views Asked by At

I have a display file with code like the following:

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

And the relevent RPG code:

...
    //If the old field and the new field are the same, error.
    if oldfld = newfld;
      *in59 = *on;
      iter;
    endif;
...

While debugging, I verified that right before the exfmt that *in59 is on. When the screen is displayed, though, I get nothing. The error message does not come up, the field does not get highlighted, it acts like this is a normal loop with no errors.

I have other errors using ERRMSGID, and those DO work. However, I would like to avoid having to use the message file, since this is something that will likely only be used once.

I have yet to find any online resources that have helped. Some tutorials seemed to be in the right direction (such as this one), but still have not fixed the issue.

1

There are 1 best solutions below

1
On BEST ANSWER

After changing the state of *IN59, you need to issue a WRITE to the record format DSPBTM.