RPG

8. RPGで画面のカーソル位置を検出するには?

明細行のある照会画面で、ユーザーに任意のレコードを選択させる場合には

オプションを入力するのではなくカーソルをそのレコードに位置づけて

F4=プロンプトなどの機能キーを押させるような選択方法は非常に適切である。

なぜなら、

  • 初心者のユーザーであってもカーソルを動かすことはやさしい。
  • カーソルは画面上で 1つしかないので複数選択の場合を考えなくて良い。
  • IBMのユーティリティーと同じ操作で統一することができる。
  • オプション入力欄を必要としないので 画面の横幅を広く使える。

さて、それではカーソル位置はどのようにして検出すれば良いか?

0001.00      FPGM001FMCF  E                    WORKSTN
0002.00      F                                              KINFDS INFDS
0003.00      IINFDS       DS
0004.00      I*( CURSOR 行と桁の取り込み )
0005.00      I                                    B 370 3710LINE
0006.00      I*  TOPRRN: 今表示している SUBFILE の先頭の RRN
0007.00      I                                    B 378 3790TOPRRN
0008.00      I* BRRN : SUBFILE の RECORD NO ( 2 進数 )
0009.00      I                                    B 376 3770BRRN
0010.00     +C                     EXSR CURSOR
0011.00      C*
0012.00      C*****************************************************
0013.00      C           CURSOR    BEGSR
0014.00      C*****************************************************
0015.00      CSR         LINE      DIV  256       LIN     30       CRSR の行数
0016.00      CSR                   MVR            POS     30       CRSR の桁数
0017.00      CSR                   ENDSR