IBM iつれづれ草|IBM iの小ネタシリーズ 第1回~画面(DSS)周りのカーソル制御(高橋昌宏)*IBM i

 

「知らない人は知らないが、知ってる人なら知っている」って感じで、今回からIBM iに関する知識の小ネタをお伝えしたいと思います。

第1回は、画面(DSS)周りのカーソル制御関連です。

 

① 画面のカーソルを入力項目のみに移動させる

画面上のカーソルを、入力領域のみに移動させることで、矢印キーでのフィールド移動を可能にできる。

このような場合は、画面DDSにキーワード CSRINPONLYを指定する。

 

② 画面のカーソルの移動先を自由に設定する

画面上のカーソルの動きは通常、右→左、上→下の順で移動するが、この順序を無視して、自由に移動先を設定する。

このような場合は、画面DDSにキーワード FLDCSRPRGを指定する。

 

このサンプルでは、カーソルはD1C0D1→D1COD3→D1COD2→D1COD1と移動する。

 

③ サブファイル画面のカーソルの動きを上から下へと移動させる

サブファイル画面上のカーソルの動きは通常、右→左の順で移動するが、この順序を無視して、上→下の順序で移動させる。

このような場合は、画面DDSにキーワード SFLCSRPRGを指定する。ただし、このキーワードはSFLLINと同時には指定できない。

 

画面イメージ
この例では矢印のようにカーソルが移動する

 

④ 画面上のカーソルの位置情報を取得する

画面の項目検索POP-UP画面等をCALLする際、カーソルが検索対象項目にある場合にのみ実行したい。

このような場合は、画面DDSにキーワード RTNCSRLOCを指定することで、現在のカーソルのあるフェールド名を取得できる。

 

この例では、カーソルが D1KUBNにあった場合は、以下のようにセットされる。

D#RECDには”#FMT10″
D#FELDには”D1KUBN”

ちなみにフェールド外では、値はセットされない。

RPG側でのコーディングは、以下のようになる。

 

⑤ サブファイル上のカーソル位置のサブファイル相対レコード番号を取得する

サブファイル上にカーソルを移動して、実行(ファンクション)キーを押すことで、カーソル位置のサブファイルレコード内容を使用して処理を実行したい。

このような場合は、画面DDSにキーワード SFLCSRRRNを指定することで、現在のカーソルのある相対レコード番号が取得できる。

 

今回は以上です。1つでも、「こんなことができるんだ~」と役に立てれば、うれしく思います。今後も小ネタシリーズとして、いろいろな技をお伝えしていきます。

 


IBM iつれづれ草

第1回 フリーフォームRPG!!
第2回 SQLをお勧めする4つの理由
第3回 SQLの索引アドバイザー

関連リンク

More Posts