IBM iつれづれ草|IBM iの小ネタシリーズ 第2回~知っていると便利な4つの小ワザ(高橋昌宏)*IBM i

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

第2回は知っていると便利な4つのTIPSです。

1 標識を使用せずに、画面項目の制御を行う

通常、画面項目の制御は 標識とDSPATR(XX)で行うが、標識が不足してしまうこともある。そんな時に、標識を使用せずに制御するには以下のような方法がある。

DDSの場合

RPGの場合

表示属性の16進一覧 (マニュアルより抜粋)

AS/400 データ記述仕様書 V3
有効な P フィールド値

DSPATR のP フィールドは、次の表示属性をサポートしない。

表示属性   意味
MDT       表示時点での変更データ・タグのセット
OID     操作員識別
PC                   カーソル位置決め
SP                    ライト・ペン選択可能

◎有効なPフィールド値(無保護)

(C) Copyright IBM Corp. 1994, 1996 3.3.39.3 – 1

◎有効なPフィールド値

◎有効な P フィールド値(保護)

(C) Copyright IBM Corp. 1994, 1996 3.3.39.3 – 2

◎有効な P フィールド値

2 RPG内で異常終了が起こった場合、システムメッセージを表示させずに内部で処理する

通常、RPG内での異常終了(10進エラー等)は、システムメッセージが表示され、異常終了となるが、ユーザー側で独自の異常終了処理を行いたい場合がある。

そんなときはサブルーチン名を*PSSRで作成すれば、エラー時に*PSSRが自動的に呼び出され、独自の処理が可能となる。

またファイルのエラーに関しては、個々に定義する必要がある。その場合は、個々のエラーサブルーチンを定義できる。

ただし画面に関しては、*PSSRの指定は避けたほうがよいかもしれない。通常では無視されている処理がエラーとみなされ、*PASSに飛ぶからだ。

たとえばROLLUPキーに指標を付けなかった場合、通常はスクロールされるが、サブルーチンを指定した場合はエラーとみなされる(標識のないページダウンキーが押された)。

上記の例では、TEMP01のファイルエラーは@SB01が呼び出される。

3 フィールドと配列と関連づける

たとえば、画面上に営業所コードが1~10まであり、その内容を配列に格納したい場合は以下のようになる。

物理ファイルとのリンクは、以下の方法で配列とのリンクが可能である。

4 画面ファンクションKEYの標識に対して、*INKCや*IN03を使用せずに、標識の節約を行う

画面ファンクション標識は、*INKC形式で行うとソース上でわかりにくくなり、使い勝手もよくない。
また*IN03形式は、使い勝手はよいが、1~24までの標識を無駄使いしてしまう。

そこで使い勝手がよく、標識の無駄使いもなくしたい場合にはINFDSを利用する。

今回は以上となります。

1つでも、「こんなことできるんだ~~」って思えることがあればうれしいです。

今後も小ネタシリーズとして、いろいろとお伝えできればと思います。ありがとうございました。


IBM iつれづれ草

第1回 フリーフォームRPG!!

第2回 SQLをお勧めする4つの理由

第3回 SQLの索引アドバイザー

第4回 IBM iの小ネタシリーズ 第1回~画面(DSS)周りのカーソル制御

 

More Posts