OK, I've got a display file issue that is truly boggling my mind.
In a particular DSPF, I've got several screens. The problem comes between Screen 2 and Screen 3. Screen 2 is a subfile.
On Screen 2, I have a subroutine that reads thru each record on the subfile, and looks for the option number that the user put in. If the user selects with option '1', the program is supposed to go to Screen 3. This works fine. I select the first record with option '1'.
I go to Screen 3, and press F12 (*INKL). The RPGLE program recognizes this properly, and processes properly. It returns to Screen 2. The last thing the Screen 3 routines do, before returning to Screen 2, is turn off *INKL. All is well; this works fine. I have confirmed that, when I return to Screen 2, *INKL is off.
The next thing that happens on Screen 2 is to read the next subfile record. That works great. But when I read the next subfile record, this TURNS *INKL BACK ON, even though F12 was not pressed on Screen 2 at all. I have confirmed (with DEBUG) that this is when *INKL is turned back on. (This, as you might imagine, causes F12 processing on Screen 2, returning the program to Screen 1).
I've tried having the DDS CA12 keyword at the file level; I've tried moving it down to the record level (and only having it on the subfile control records). Nothing works.
Any ideas?
In a particular DSPF, I've got several screens. The problem comes between Screen 2 and Screen 3. Screen 2 is a subfile.
On Screen 2, I have a subroutine that reads thru each record on the subfile, and looks for the option number that the user put in. If the user selects with option '1', the program is supposed to go to Screen 3. This works fine. I select the first record with option '1'.
I go to Screen 3, and press F12 (*INKL). The RPGLE program recognizes this properly, and processes properly. It returns to Screen 2. The last thing the Screen 3 routines do, before returning to Screen 2, is turn off *INKL. All is well; this works fine. I have confirmed that, when I return to Screen 2, *INKL is off.
The next thing that happens on Screen 2 is to read the next subfile record. That works great. But when I read the next subfile record, this TURNS *INKL BACK ON, even though F12 was not pressed on Screen 2 at all. I have confirmed (with DEBUG) that this is when *INKL is turned back on. (This, as you might imagine, causes F12 processing on Screen 2, returning the program to Screen 1).
I've tried having the DDS CA12 keyword at the file level; I've tried moving it down to the record level (and only having it on the subfile control records). Nothing works.
Any ideas?
Comment