其实我并不是在询问有关实施的细节。我知道如何在整个屏幕中使用子文件实现单选列表,但是当我尝试将相同的原理应用于窗口时,事情并没有像预期的那样顺利。这里是DDS的窗口和子文件:如何使用AS400 DDS在窗口中创建单个选择列表?
A R SWCCHK03 SFL
A S0AVAL 1Y 0H SFLCHCCTL
A S0OPTN 10A O
A R SWCCHK04 SFLCTL(SWCCHK03)
A OVERLAY
A SFLDSP
A SFLDSPCTL
A 30 SFLCLR
A 31 SFLEND
A SFLSIZ(0006)
A SFLPAG(0005)
A WINDOW(*DFT 13 32)
A SFLSNGCHC(*RSTCSR *AUTOSLT)
A 1 3'Option'
,这里是在RPGLE循环用于显示和处理所选择的选项:
C SR300 BEGSR
C *IN12 DOWEQ *OFF
C EXFMT SWCCHK04
C *IN12 IFEQ *OFF
C GOTO SR300E
C ENDIF
C READC SWCCHK03
C S0AVAL IFEQ 4
C ITER
C ENDIF
.
.
.
C ENDDO
C SR300E ENDSR
在某些情况下,我想S0AVAIL设为4,因此单选列表中的某些选项将变得不可用,并且如果用户试图选择这样的选项,则窗口和单选列表将保留在屏幕上并且光标位于第一选项上,直到用户选择退出该窗口或选择一个可用选项。
如果用户选择可用选项,则此实现没有问题。但是,如果用户选择了不可用的选项,该窗口将根据需要保留在屏幕上,但光标将移动到窗口的左上角,而不是保留在选择列表的第一个选项中。即使我可以手动将光标移回选项,当下次选择不可用选项时,它也会再次转到窗口角落。这怎么发生的?以及如何解决这个问题?
对不起,S0OPTN应该是10个字符长。我把它和另一个领域混合起来。关于选择一个不可用的选项,我不知道如何将光标放在它上面。我正在使用Windows的个人通信5.8。 –