実際、私は実装について詳細を求めているわけではありません。画面全体でサブファイルを使用して単一の選択リストを実装する方法は知っていますが、同じ原則をウィンドウに適用しようとすると、期待どおりに動作しませんでした。ウィンドウとサブファイルの 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 に設定して、単一選択リストの一部のオプションが使用できなくなり、ユーザーがそのようなオプションを選択しようとすると、ウィンドウと単一選択リストが画面に残り、カーソルがユーザーがウィンドウを終了するか、使用可能なオプションを選択するまで、最初のオプション。
ユーザーが利用可能なオプションを選択する場合、この実装は問題ありません。ただし、ユーザーが使用できないオプションを選択すると、ウィンドウは必要に応じて画面に残りますが、カーソルは選択リストの最初のオプションにとどまるのではなく、ウィンドウの左上隅に移動します。また、カーソルを手動でオプションに戻すことができたとしても、次に使用できないオプションを選択すると、カーソルは再びウィンドウの隅に移動します。どうしてそうなった?そして、この問題を解決するにはどうすればよいですか?