単一ページのサブファイルによって作成された単一の選択リストを使用して表示ファイルを作成しています。この実装では、2つの問題が見つかりました。
1つ目は、表示ファイルがロードされたときにEnterキーを押してオプションを初めて選択したときに、RPGLEのREADC操作が正しい値を返すことです(サブファイルレコードの文字列を返します)。別のオプションを選択してEnterキーをもう一度押すと、前のEnterキーを押したときの値が返されました。その後のターンでは、直前の選択値を返し続けました。プログラムの最初のREADCの後に2番目のREADCを追加して、何が起こるかを確認したところ、両方のREADCが値を返すことがわかりました。最初のものは前の選択からの値を返し、2番目は私が現在選択した値を返しました。
2番目の問題は、同じオプションを複数回選択しても機能しなかったことです。つまり、最初にしか機能せず、すぐにもう一度選択しようとしても応答しませんでした。
すべてのサブファイルをロードすることで作成された別の単一の選択リストに同じロジックを適用しましたが、これらの問題は発生しませんでした。単一ページのサブファイルが単一選択リストの作成に適していないことを意味しますか?
サブファイルの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