我正在制作一个显示文件,其中包含由单个页面子文件创建的单个选择列表。通过这个实现,我发现了两个问题。
第一个是当我在加载显示文件时第一次按Enter选择一个选项时,RPGLE中的READADC操作将返回正确的值(它返回子文件记录中的字符串)。当我再次按下 Enter 并选择了不同的选项时,返回了上一次 Enter 按下的值。在随后的轮次中,它一直返回它之前的选择值。我在程序中的第一个之后添加了第二个 READADC,只是为了看看会发生什么,并发现两个 READADC 都返回了值。第一个返回之前选择的值,第二个返回我当前选择的值。
第二个问题是多次选择相同的选项不起作用,即它只在第一次起作用,如果我立即尝试再次选择它,它没有响应。
我已将相同的逻辑应用于另一个由加载所有子文件组成的单个选择列表,它没有任何这些问题。是不是说单页子文件不适合做单选列表?
这是子文件的 DDS:
A R ITFMAT02
A S1OPTN 50 A 6 11
A R ITFMAT01
A SFLCLT(ITFMAT02)
A 27 SFLDSP
A 28 SFLCLR
A 29 SFLEND
A CF12(12)
A SFLSNGCHC(*AUTOSLT)
这是 RPGLE 主循环:
C *IN12 DOWEQ *OFF
C EXFMT ITFMAT01
C *IN12 IFEQ *ON
C LEAVE
C ENDIF
C READC ITFMAT02
C MOVEL S0OPTN W1OPTN
.
.
.
C ENDDO